我需要杀死 Perl 应用程序中的某些进程和线程(如果存在),但我不想使用外部命令(s),例如ps
,grep
,awk
,cut
,uniq
或kill
。
我目前的代码是:
my $appName = $0;
$appName =~ s/^.*\/([^\/]*)$/$1/;
$_ = qx(kill -9 `ps -eLao pid,command | grep '$appName\[ 0-9\]*\$' |
grep -v grep | awk '\$1 != $$' | cut -d' ' -f1 | uniq` 2>&1);
我正在使用VPS,所以我的记忆力有限。上面的代码有时返回undef
,因为系统无法为外部命令的调用分配内存。我正在寻找替代解决方案,而不使用外部命令。