有一个 WorkerMan 程序,会把 pid 放在 /tmp 目录下,过一段时间不知道为什么这个文件就消失了,然后命令行的控制就不起作用了。网上查了之后知道 linux 系统除了用户的 crontab 外,还有一些定时任务在 /etc/cron.* 系列目录下。而且有专门清除 /tmp 目录的任务,配置文件在 /usr/lib/tmpfiles.d/tmp.conf。pid 文件是不能 /tmp 下了。跟运维沟通后得知 linux 有个专门放 pid 文件的目录是 /var/run。

改完程序后还不能重启进程,最好可以 reload。从运维那里得知一般程序 reload 可以用

1
kill -HUP pid

这个命令。试了以后发现不行,主程序被杀死了。看程序里面用的是 SIGUSR1 这个信号,即要执行

1
kill -USR1 pid

SIGUSR1 信号是程序自定义的信号,至于 WorkerMan 收到这个信号执行了什么,就是另一篇文章的事了。

所以这里给出结论:SIGHUP 信号的解释是挂起,大多数服务器进程都会进行复位操作并重新加载配置文件。但不适用我们自己写的程序。