Ubuntu - запустить оболочку с несколькими командами в качестве службы - PullRequest
0 голосов
/ 10 февраля 2020

Расположение скрипта: /usr/bin/Startup_tc_and_agents.sh

Содержимое скрипта (все 3 команды находятся в первой строке скрипта):

sh /home/tb/Desktop/Installed/TeamCity/bin/runAll.sh start; sh /home/tb/Desktop/Installed/TeamCity/buildAgent_2/bin/agent.sh start; sh /home/tb/Desktop/Installed/TeamCity/buildAgent_3/bin/agent.sh start;

, если я запускаю этот скрипт вручную в терминале - все работает, как ожидалось. Но если я выполню его из .service, то произойдет сбой?

Расположение службы: /etc/systemd/system/TeamCity_and_agents_startup.service

Содержание службы:

[Unit]
Description=Service that startup TeamCity and its 3 agents
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/Startup_tc_and_agents.sh

[Install]
WantedBy=multi-user.target

Я также предоставил такие разрешения, как:

sudo chmod -R a+rwx /usr/bin/Startup_tc_and_agents.sh
sudo chmod -R a+rwx /etc/systemd/system/TeamCity_and_agents_startup.service

Я также выполнил следующие команды:

systemctl daemon-reload
systemctl enable TeamCity_and_agents_startup.service

Я также попытался добавить #!/bin/sh в качестве первой строки и чуть выше строки 'ExecStart' - но это не так ничего не изменить.

Когда я запускаю службу с помощью: systemctl start TeamCity_and_agents_startup.service, я получаю сообщение об ошибке ниже:

TeamCity_and_agents_startup.service - Service that startup TeamCity and its 3 agents
   Loaded: loaded (/etc/systemd/system/TeamCity_and_agents_startup.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-02-10 16:17:24 +04; 13s ago
  Process: 56412 ExecStart=/usr/bin/Startup_tc_and_agents.sh (code=exited, status=203/EXEC)
 Main PID: 56412 (code=exited, status=203/EXEC)

Feb 10 16:17:24 Monster systemd[1]: Started Service that startup TeamCity and its 3 agents.
Feb 10 16:17:24 Monster systemd[56412]: TeamCity_and_agents_startup.service: Failed to execute command: Exec format error
Feb 10 16:17:24 Monster systemd[56412]: TeamCity_and_agents_startup.service: Failed at step EXEC spawning /usr/bin/Startup_tc_and_agents.sh: Exec format error
Feb 10 16:17:24 Monster systemd[1]: TeamCity_and_agents_startup.service: Main process exited, code=exited, status=203/EXEC
Feb 10 16:17:24 Monster systemd[1]: TeamCity_and_agents_startup.service: Failed with result 'exit-code'.

1 Ответ

0 голосов
/ 10 февраля 2020

Я изменил эту строку:

ExecStart=/usr/bin/Startup_tc_and_agents.sh

на эту:

ExecStart=/bin/sh /usr/bin/Startup_tc_and_agents.sh

PS: #!/bin/sh не нужно было включать в скрипт в моем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...