Запуск скриптов tcsh при запуске в bash env

Запуск скриптов tcsh при запуске в bash env

У меня есть пользователь, который по умолчанию fooиспользует . Я не могу изменить эту оболочку по умолчанию. У Foo есть служба, которая называется running, для которой все скрипты запуска и файл .(dot), содержащий переменные ENV, находятся в домашнем каталоге foo.tcsh/etc/passwdxyz

Теперь также создается скрипт запуска для запуска этой службы и помещается в /etc/init.d/xyzнего, написанный на bash.

Теперь проблема в том, что служба не запускается при загрузке, и я не могу запустить ее из-под своего пользователя по умолчанию при входе в систему. Запуск возможен только тогда, когда я вхожу в пользователя foo и выполняю скрипт для запуска службы.

Если я сделаю это так

sudo su foo /home/foo/xyzон покажет мне ошибки типа then: then/endif not found..

Итак, я хочу запустить программу tcsh для запуска при загрузке из скрипта init.d, который находится в bash. В настоящее время я попытался сделать это

su - foo -c "source /home/foo/.env_vars && /home/foo/bin/xyz start"но это не запускает службу во время загрузки.

Я не уверен, как заставить скрипт tcsh выполняться во время загрузки.

решение1

Вы также можете:

  • использовать tcsh -c $scriptдля запуска скриптов с tcsh
  • установите shebang (первую строку) в скрипте #!/bin/tcshи сделайте его исполняемым; затем вы можете просто запустить его $scriptкак команду.

Связанный контент