Не удается найти процесс после вызова этого сценария Perl в оболочке - PullRequest
0 голосов
/ 14 сентября 2011

t:

#!/usr/bin/perl

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

Он вызывается как t perl_script.

Но после этого я не могу найти его по ps и не могу завершить его по ^ C

Что не так?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

Вам нужно включить пробел после -d? В противном случае вы исполняете

perl -Ilib -dperl_script

вместо

perl -Ilib -d perl_script

Очиститель по-прежнему:

exec("perl","-Ilib","-d",$ARGV[0]);
exec($^X, "-Ilib", "-d", $ARGV[0]);
0 голосов
/ 14 сентября 2011

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

Вы исполняете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...