daemonize:以守护进程形式运行命令的工具
1.下载安装
git clone https://github.com/bmc/daemonize.git
cd daemonize/
./configure
make
#此时给出提示,按提示执行
gcc -g -O2 -c daemonize.c -I. -I.
gcc -g -O2 -c getopt.c -I. -I.
gcc -g -O2 -o daemonize daemonize.o getopt.o
#此时生成 daemonize
cp daemonize /usr/local/bin/
2.daemonize使用
参数说明
-a 追加到,而不是覆盖,输出文件。已忽略除非指定-e和/或-o。
-c 将守护程序的工作目录设置为 <dir>。
-e 将守护进程的stderr发送到file <stderr>,而不是/dev/null。
-E 值将环境设置传递给守护程序。可能会出现多次。
-o 将守护进程的stdout发送到文件 <stdout>,而不是/dev/null。
-p 将PID保存到 <pidfile>。
-u 以用户 <user> 身份运行守护程序。需要以root身份调用。
-l 使用lockfile <lockfile> 进行单实例检查。
-v 在守护进程时向stdout发出详细消息。
我是用-c -o -e 来指定我的一些工作目录和标准输出。
我以node_exporter 为例!!!要写对绝对路径!!! 如果要将你的脚本放入后台那么将node_exporter换成你的脚本即可
2.1将node_expoter放入后台
daemonize \
-c /root/prometheus/node_export/node_exporter-1.8.2.linux-amd64/ \
-o /root/prometheus/node_export/node_exporter-1.8.2.linux-amd64/stdou.log \
-e /root/prometheus/node_export/node_exporter-1.8.2.linux-amd64/stderr.log /root/prometheus/node_export/node_exporter-1.8.2.linux-amd64/node_exporter
#检查是否运行了
ps -ef | grep node
ss -lntp | grep 9100
其他还有screen ,supervisord工具也挺有意思
supervisord下载然后在找找怎么写conf文件即可