我有一个关于RHEL6中UNIX作业控制的问题
基本上,我正在尝试使用logrotate实现乘客调试日志轮换。我按照这里的说明进行操作:
https://github.com/phusion/passenger/wiki/Phusion-Passenger-and-logrotation
我已经把所有东西都设置好了(我想)。我的问题是:当我使用
nohup pipetool $HOME/passenger.log < $HOME/passenger.pipe &然后注销并重新登录,如果我检查进程表,例如使用'ps aux‘,如果我检查进程的pid,它将显示为使用命令'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”?我使用bash作为shell,当我调用pipetool的时候。感谢你抽出时间来帮助我。
发布于 2015-01-09 19:09:36
这应该适用于您:编辑pipetool以设置全局变量$PROGRAM_NAME
$PROGRAM_NAME = 'pipetool'然后,该脚本应在进程列表中显示为pipetool。
https://stackoverflow.com/questions/27610786
复制相似问题