我有一個 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 啟動後立即終止服務
我想知道我是否可以做其他事情,因為系統已經被鎖定了。我對單元檔案和兩個腳本擁有完全編輯權限,但無法建立新服務或觸控系統目錄。