我的 Node.js app 是用 PM2 啟動,MySQL 是放在 Docker。
因為 PM2 啟動 app 比 Docker 快,所以會出現錯誤訊息(資料庫連線錯誤)。
請 ChatGPT 幫忙,延後 PM2 啟動執行 app,方法如下:
先建一個 timer 檔案: /etc/systemd/system/myservice-delay.timer
內容:
[Unit]
Description=Delay start for myservice
[Timer]
OnBootSec=60s
Unit=myservice.service
[Install]
WantedBy=timers.target
這個 Timer 的意思是:開機後 60 秒,才觸發 myservice.service
啟用 Timer:
sudo systemctl daemon-reload
sudo systemctl enable myservice-delay.timer
但有一個地方要注意,原本用 PM2 產生的 service 要停止開機啟動。
sudo systemctl disable myservice