bash env에서 시작 시 tcsh 스크립트 실행

bash env에서 시작 시 tcsh 스크립트 실행

에서 기본적으로 foo사용하는 사용자가 있습니다 . 해당 기본 쉘을 변경할 수 없습니다. Foo에는 running이라는 서비스가 있는데 , 모든 시작 스크립트와 ENV 변수를 포함하는 .(dot) 파일이 foo의 홈 디렉터리에 있습니다.tcsh/etc/passwdxyz

이제 해당 서비스를 실행하기 위한 시작 스크립트도 생성되어 /etc/init.d/xyzbash로 작성됩니다.

이제 문제는 부팅 시 서비스가 시작되지 않고 로그인 시 기본 사용자에서도 서비스를 실행할 수 없다는 것입니다. foo 사용자로 로그인하고 스크립트를 실행하여 서비스를 시작하는 경우에만 실행할 수 있습니다.

내가 이런 짓을 하면

sudo su foo /home/foo/xyz와 같은 오류가 표시됩니다 then: then/endif not found..

그래서 저는 bash에 있는 init.d 스크립트에서 부팅 시 실행되는 tcsh 프로그램을 실행하고 싶습니다. 현재 나는 이것을하려고 노력했습니다

su - foo -c "source /home/foo/.env_vars && /home/foo/bin/xyz start"하지만 부팅 시 서비스가 시작되지는 않습니다.

부팅 시 tcsh 스크립트를 실행하는 방법을 잘 모르겠습니다.

답변1

다음 중 하나를 수행할 수 있습니다.

  • tcsh -c $scripttcsh로 스크립트를 실행하는 데 사용
  • 스크립트의 shebang(첫 번째 줄)을 다음으로 설정 #!/bin/tcsh하고 실행 가능하도록 설정합니다. 그런 다음 $script명령으로 시작할 수 있습니다 .

관련 정보