У меня есть пользователь с именем foo
, который по умолчанию использует tcsh
в / etc / passwd
. Я не могу изменить эту оболочку по умолчанию. У Foo работает служба xyz
, для которой все сценарии запуска и. (dot) файл, содержащий переменные ENV, находится в домашнем каталоге foo.
Теперь также создается сценарий запуска для запуска этой службы и помещается в /etc/init.d/xyz
, который написан на bash .
Теперь проблема в том, что служба не запускается при загрузке, и я не могу запустить ее от своего пользователя по умолчанию при входе в систему. Это возможно только тогда, когда я su в foo user и выполняю сценарий для запуска службы.
Если мне это нравится
sudo su foo / home / foo / xyz
, мне будут показаны такие ошибки, как , затем: then / endif not found.
.
Итак, что я хотите запустить программу tcsh для запуска при загрузке из сценария init.d, который находится в bash. В настоящее время я пытался сделать это
su - foo -c "source /home/foo/.env_vars && / home / foo / bin / xyz start"
, но это не запускает службу во время загрузки .
Я не знаю, как запустить сценарий tcsh во время загрузки.
Вы можете:
tcsh -c $ script
для запуска сценариев с tcsh #! / Bin / tcsh
и установите его исполняемым файлом; затем вы можете просто запустить его с помощью команды $ script
.