【发布时间】:2010-06-27 23:08:17
【问题描述】:
我想编写一个 Perl 代码来结束我在 Linux 上运行的另一个程序的进程。
例如,我执行xxy.py 并为其打开一个进程。我想用Perl关闭xxy.py的进程。我需要做什么?
【问题讨论】:
我想编写一个 Perl 代码来结束我在 Linux 上运行的另一个程序的进程。
例如,我执行xxy.py 并为其打开一个进程。我想用Perl关闭xxy.py的进程。我需要做什么?
【问题讨论】:
Perl 扩展名通常是 .pl 或 .pm 对吗? .py 是我认为的 python。
无论如何,你可以在 Unix 环境中杀死一个指定的程序,比如:
system 'killall', 'some_program_name';
或
system 'kill', '-15', $pid;
如果变量 $pid 包含您的程序的 pid。
【讨论】:
system 'kill', '-9', $pid;。这将避免通过外壳
-9 (SIGKILL),因为它不会给您正在杀死的进程提供任何自我清理的机会。 SIGTERM(通常是-15)更好。
使用 killall 按进程名称杀死进程。如果您必须使用 perl。从那里进行系统调用。
【讨论】:
killall 关心给定的名称。 SysV 风格的killall 更直接,会尝试杀死所有 进程。 (或者,鉴于这是如此,它们可能只是随机的驱动式投票......)