Ubuntu,新贵,并创建一个用于监控的 pid [英] Ubuntu, upstart, and creating a pid for monitoring

查看:21
本文介绍了Ubuntu,新贵,并创建一个用于监控的 pid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是一个 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆