Ubuntu,新贵,并创建一个用于监控的 pid [英] Ubuntu, upstart, and creating a pid for monitoring
问题描述
下面是一个 redis 的新贵脚本.如何创建 pid 以便使用 monit 进行监控?
Below is a upstart script for redis. How to I create a pid so I use monit for monitoring?
#!upstart
description "Redis Server"
env USER=redis
start on startup
stop on shutdown
respawn
exec sudo -u $USER sh -c "/usr/local/bin/redis-server /etc/redis/redis.conf 2>&1 >> /var/log/redis/redis.log"
推荐答案
如果您的机器上有 start-stop-daemon,我强烈建议您使用它来启动您的进程.start-stop-daemon 将处理以非特权用户身份启动进程,而无需从 sudo 或 su 分叉(推荐在新贵食谱中)并且它还内置了对 pid 文件管理的支持.例如:
If start-stop-daemon is available on your machine, I would highly recommend using it to launch your process. start-stop-daemon will handle launching the process as an unprivileged user without forking from sudo or su (recommended in the upstart cookbook) AND it also has built in support for pid file management. Eg:
/etc/init/app_name.conf
#!upstart
description "Redis Server"
env USER=redis
start on startup
stop on shutdown
respawn
exec start-stop-daemon --start --make-pidfile --pidfile /var/run/app_name.pid --chuid $USER --exec /usr/local/bin/redis-server /etc/redis/redis.conf >> /var/log/redis/redis.log 2>&1
或者,您可以通过使用 post-start script
节创建它并使用 post-stop script
节删除它来手动管理 pid 文件.例如:
Alternatively you could manually manage the pid file by using the post-start script
stanza to create it and post-stop script
stanza to delete it. Eg:
/etc/init/app_name.conf
#!upstart
description "Redis Server"
env USER=redis
start on startup
stop on shutdown
respawn
exec sudo -u $USER sh -c "/usr/local/bin/redis-server /etc/redis/redis.conf 2>&1 >> /var/log/redis/redis.log"
post-start script
PID=`status app_name | egrep -oi '([0-9]+)$' | head -n1`
echo $PID > /var/run/app_name.pid
end script
post-stop script
rm -f /var/run/app_name.pid
end script
这篇关于Ubuntu,新贵,并创建一个用于监控的 pid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!