Назад | Перейти на главную страницу

Запуск сценариев tcsh при запуске в bash env

У меня есть пользователь с именем 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
  • установите shebang (первая строка) в скрипте на #!/bin/tcsh и установите его исполняемым файлом; вы можете просто начать это с $script как команду.