【发布时间】:2012-02-18 15:51:55
【问题描述】:
我有一个 python 脚本来启动我想使用 Nagios 监控的进程。当我运行该脚本并在我的 ubuntu EC2 实例上执行 ps -ef 时,它显示进程为 python <filename>.py --arguments。为了让 Nagios 使用 check_procs 监控该进程,我们需要提供进程名称。这里进程名称变为“python”。
/usr/lib/nagios/plugins/check_procs -C python
它返回一个 python 进程正在运行的输出。当我运行一个 python 进程时,这很好。但是如果我正在运行多个 python 脚本并且只监控几个,那么我必须给出那个特定的进程名称。如果在上面的命令中,我给出了 python 脚本名称,它会抛出一个错误。因此,我想将整个 python <filename>.py --arguments 屏蔽为其他名称,以便在执行 check_procs 时,我可以提供该新名称。
如果有人有任何想法,请告诉我。我检查了其他 stackoverflow 问题,这些问题建议使用 setproctitle 更改 python 进程名称,但我想使用 shell 执行它。
问候,
卫生巾
【问题讨论】:
-
您想使用 shell 来启动 Python 脚本,而该脚本又会启动另一个进程。但是,您希望 shell 使用与您实际提供给 shell 的进程名称和参数不同的进程名称和参数来启动原始 Python 进程。对吗?
-
是的..这正是我想要达到的目标!!
-
check_procs 比只看 ps 'command' 输出更聪明。如果您使用#!,它已经可以检测到名称!你的python中的行并直接执行它们。 [完全没有记录在手册页中:( ]。见我的回答:stackoverflow.com/a/10232406/117714
标签: python shell ubuntu process nagios