在shell中调用此Perl脚本后找不到该进程

时间:2011-09-14 05:52:50

标签: perl

t

#!/usr/bin/perl

exec("perl -Ilib -d" . $ARGV[0]);

它被调用为t perl_script

但之后我无法通过ps找到它,并且无法通过 ^ C

来终止它

怎么了?

2 个答案:

答案 0 :(得分:0)

http://perldoc.perl.org/functions/exec.html

您正在使用args执行perl并传入perl_script。这意味着当前脚本t不再存在,并被perl -Ilib -dperl_script取代。

使用ps寻找的流程将是您传入的流程(perl_script

编辑以下来自OP的评论:

实际流程为perl,因为这是您所执行的操作,但您当然可以通过使用perl_script传递的grep找到它:

$ ps -ef |grep perl_script
broach   13039  2264  0 01:08 pts/0    00:00:00 perl -Ilib -dperl_script

答案 1 :(得分:0)

您需要在-d之后加一个空格吗?否则你就是在执行

perl -Ilib -dperl_script

而不是

perl -Ilib -d perl_script

清洁工仍然:

exec("perl","-Ilib","-d",$ARGV[0]);
exec($^X, "-Ilib", "-d", $ARGV[0]);