我有一个像这样的新贵脚本:
start on runlevel [2345]
respawn
script
exec su - ubuntu -c "cd /opt/app; bin/widget 2>&1 | logger -t 'widget'"
end script
问题是当小部件进程崩溃时,它不会重生。大概是因为记录器进程仍在运行。有什么办法可以解决这个问题吗?
答案1
我会将这项工作“外包”给一个 bash 脚本:
start on runlevel [2345]
respawn
script
exec /path/to/bash/script
end script
剧本
#! /bin/bash -e
su - ubuntu -c "cd /opt/app; bin/widget" |& logger -t 'widget'
exit ${PIPESTATUS[0]}
数组PIPESTATUS
狂欢存储管道返回值,在本例中我们使用命令的返回值su
。