我对 RHEL6 中的 UNIX 作业控制有疑问
基本上,我正在尝试使用 logrotate 来实现乘客调试日志轮换。我正在按照此处的说明进行操作:
https://github.com/phusion/passenger/wiki/Phusion-Passenger-and-logrotation
我已经正确设置了所有内容(我认为)。我的问题是这个;当我使用生成后台作业时
nohup pipetool $HOME/passenger.log < $HOME/passenger.pipe &
然后注销并重新登录,如果我检查进程表,例如,如果我检查进程的 pid,则使用“ps aux”,它显示为命令“bash”。我尝试将命令的第一行更改为“#!/usr/bin/ruby”。这是一个例子:
[root@server]# nohup pipetool /var/log/nginx/passenger-debug.log < /var/pipe/passenger.pipe &
[1] 63767
[root@server]# exit
exit
[me@server]$ sudo su
[sudo] password for me:
[root@server]# ps aux | grep 63767
root 63767 0.0 0.0 108144 2392 pts/0 S 15:26 0:00 bash
root 63887 0.0 0.0 103236 856 pts/0 S+ 15:26 0:00 grep 63767
[root@server]#
发生这种情况时,提供的 logrotate 文件 (killall -HUP pipetool) 中的行将失败,因为“pipetool”不匹配。同样,我尝试将第一行更改为 #!/usr/bin/ruby。这没有影响。所以,我的问题基本上是;当使用作业控制产生时,有什么好方法可以让实际命令出现在进程表中,而不仅仅是“bash”?当我调用 pipetool 时,我使用 bash 作为 shell。感谢您抽出宝贵时间帮助我。