【问题标题】:nohup job control rhel6/centosnohup 作业控制 rhel6/centos
【发布时间】:2014-12-22 21:35:48
【问题描述】:

我有一个关于 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”?当我调用 pipetool 时,我使用 bash 作为 shell。感谢您抽出宝贵时间帮助我。

【问题讨论】:

  • 取决于您的操作系统等。尝试寻找ptree $PID,或ps 的可视化树选项。然后,您应该会看到父进程 bash 以及它的子进程。为什么不能只搜索 passenger hmmm.... 或 pipetool ?祝你好运。

标签: bash passenger rhel6


【解决方案1】:

这应该对你有用:编辑 pipetool 以设置全局变量 $PROGRAM_NAME

$PROGRAM_NAME = 'pipetool'

然后脚本应该在进程列表中显示为pipetool

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 2013-10-16
    • 2014-07-16
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多