我有以下新贵配置:
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 消息附加到每分钟创建的动态文件中(如果不存在则创建)。现在我想要实际的文件夹,如下所示
/日志/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 消息上都运行。
有没有什么办法可以解决这个问题?
谢谢