У меня есть пользователь с именем foo
который использует tcsh
по умолчанию в /etc/passwd
. Я не могу изменить эту оболочку по умолчанию. У Foo есть служба под названием xyz
running, для которого все сценарии запуска и файл. (dot), содержащий переменные ENV, находятся в домашнем каталоге foo.
Теперь также создается сценарий запуска для запуска этой службы и помещается в /etc/init.d/xyz
который написан на bash.
Теперь проблема в том, что служба не запускается при загрузке, и я не могу запустить ее от своего пользователя по умолчанию при входе в систему. Это возможно только тогда, когда я su в foo user и выполняю сценарий для запуска службы.
Если мне это нравится
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 скрипт выполняться во время загрузки.
Вы также можете:
tcsh -c $script
запускать скрипты с tcsh#!/bin/tcsh
и установите его исполняемым файлом; вы можете просто начать это с $script
как команду.