Linux 如何停止使用Perl运行的进程?
我想写一段Perl代码,结束我的另一个程序在Linux上运行的过程Linux 如何停止使用Perl运行的进程?,linux,perl,process,Linux,Perl,Process,我想写一段Perl代码,结束我的另一个程序在Linux上运行的过程 例如,我执行xxy.py并为其打开一个进程。我想使用Perl来关闭xxy.py的进程。我需要做什么?请参阅和手册页。使用killall按进程名称终止进程。如果必须使用perl。从内部执行系统调用 Perl扩展通常是.pl或.pm,对吗。我认为py代表python 无论如何,您可以在Unix环境中使用以下方法终止指定的程序: system 'killall', 'some_program_name'; 或 如果变量$pid保持程
例如,我执行xxy.py并为其打开一个进程。我想使用Perl来关闭xxy.py的进程。我需要做什么?请参阅和手册页。使用killall按进程名称终止进程。如果必须使用perl。从内部执行系统调用 Perl扩展通常是.pl或.pm,对吗。我认为py代表python 无论如何,您可以在Unix环境中使用以下方法终止指定的程序:
system 'killall', 'some_program_name';
或
如果变量$pid保持程序的pid。更好的写入方法是系统“kill”、“-9”、$pid;。这将避免通过shell。此外,您可能应该避免使用-9 SIGKILL,因为它不会给您正在杀死的进程任何清理自身的机会。通常-15更好,你说得对。我将编辑我的帖子以反映这一点。我只是习惯于用9.perl杀死无响应的程序,它有一个kill内置;使用它而不是外部程序…有人能解释一下这里的否定吗?不是一个反对者,但可能是因为只有FreeBSD风格的killall才关心给出的名字。SysV样式的killall更具文字性,它将尝试终止所有进程。或者,考虑到这一点,他们可能只是随机的被否决票所取代……谢谢戴夫。你想得对。我来自freebsd背景。我不知道基尔的工作原理是不一样的。如果我使用linux系统,我肯定会尝试使用killall。听起来是个疯狂的功能。好消息是有人同情我的反对票:
system 'kill', '-15', $pid;