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 的启动和停止脚本,并带有一些额外的日志记录。

编辑:我见过这个答案非常相似: Systemd 启动后立即终止服务

我想知道我是否可以做其他事情,因为系统已经被锁定了。我对单元文件和两个脚本拥有完全编辑权限,但无法创建新服务或触摸系统目录。

相关内容