
我有以下暴發戶配置:
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 99 5
#respawn is used to start the nodejs again, even if it fails.
env NODE_ENV=production
env PROJ=/home
script
cd $PROJ
cd htdocs
exec sudo /opt/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y_%m_%d_%I_%M").log
end script
這會將任何 STDOUT 和 STDERR 訊息附加到每分鐘建立的動態檔案(如果不存在則建立)。現在我想要有實際的資料夾,如
/logs/2018/05/29/10_05.log
但將程式碼更改為
exec /opt/bitnami/nodejs/bin/node app.js 2>&1 >> $PROJ/logs/$(date +"%Y")/$(date +"%m")/$(date +"%d")/$(date +"%I_%M").log
不會給出預期的輸出,因為該資料夾不存在。我考慮過在腳本中添加一個控件,檢查資料夾是否存在,如果不存在則創建它,但我希望它只運行一次,即腳本執行時,而不是在每個 STDOUT 訊息。
有什麼辦法可以解決這個問題嗎?
謝謝