Служба Systemd запускает только один из двух процессов, но только при перезагрузке ОС

Служба Systemd запускает только один из двух процессов, но только при перезагрузке ОС

У меня есть файл юнита systemd, который запускает два совершенно отдельных процесса, apache и tomcat (и прежде чем вы прокомментируете это, я знаю, что мне просто нужно создать два отдельных файла юнита, но разрешения на этом сервере жестко заблокированы). При запуске службы через сеанс SSH все запускается и останавливается просто отлично. Однако, когда сервер перезагружается, только apache запускается снова, а systemd утверждает, что все в порядке. Когда я проверяю логи tomcat, он, похоже, запустился, но процесс просто умирает в какой-то момент.

Что может быть причиной этой разницы в поведении? Должен ли этот сервис ждать чего-то еще перед запуском?

Файл блока:

[Unit]
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/home/opiusr/appstart.sh
ExecStop=/home/opiusr/appstop.sh

[Install]
WantedBy=multi-user.target

Оба скрипта представляют собой оболочки, содержащие что-то вроде этого:

/bin/su - opiusr -c "/home/opiusr/bin/start_tomcat -s" >> $LOG_FILE
/bin/su - opiusr -c "/home/opiusr/bin/start_apache -s" >> $LOG_FILE

И эти скрипты просто оборачивали скрипты запуска и остановки tomcat и apache, добавляя некоторые дополнительные протоколы.

EDIT: Я видел этот ответ, который очень похож: Systemd завершает работу службы сразу после запуска

Мне интересно, могу ли я сделать что-то еще, учитывая, что система довольно заблокирована. У меня есть полный доступ на редактирование файла юнита и двух скриптов, но нет возможности создавать новые службы или трогать системные каталоги.

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