t
:
#!/usr/bin/perl
exec("perl -Ilib -d" . $ARGV[0]);
它被调用为t perl_script
。
但之后我无法通过ps
找到它,并且无法通过 ^ C
怎么了?
答案 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]);