【发布时间】:2015-01-24 03:49:58
【问题描述】:
是否可以使用 perls system 命令的数组版本(即,将第一个元素作为命令,将数组的其余部分作为 cmd 参数的版本),同时还可以使用 Linux 生成一个新进程,以便system 命令立即返回,例如运行如下命令:
mycmd arg1 arg2 &
我尝试过使用 system( ('mycmd', 'arg1', 'arg2', '&') ),但它只是将 & 符号从字面上解释为第三个参数。
我知道我可以将整个命令作为标量传递给system,但我特别想知道是否可以使用数组版本,因为此命令的参数将来自 CGI 脚本中的用户选项。
【问题讨论】:
-
system派生一个新进程并在那里执行你的 shell 命令。您在 shell 命令中传递的任何参数都会在这个其他进程中执行,因此您可以传递&以使其在后台工作;这确实是另一个进程的背景,而不是您当前的进程。