我有一个 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 启动后立即终止服务
我想知道我是否可以做其他事情,因为系统已经被锁定了。我对单元文件和两个脚本拥有完全编辑权限,但无法创建新服务或触摸系统目录。