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 啟動後立即終止服務

我想知道我是否可以做其他事情,因為系統已經被鎖定了。我對單元檔案和兩個腳本擁有完全編輯權限,但無法建立新服務或觸控系統目錄。

相關內容