私には、apache と tomcat という 2 つの完全に別のプロセスを開始する systemd ユニット ファイルがあります (コメントする前に、2 つの別のユニット ファイルを作成する必要があることはわかっていますが、このサーバーの権限は厳重にロックされています)。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 は起動後すぐにサービスを終了します
システムはかなりロックダウンされているので、何か他のことができるのではないかと思っています。ユニット ファイルと 2 つのスクリプトへの完全な編集アクセス権はありますが、新しいサービスを作成したり、システム ディレクトリを変更したりすることはできません。