
如果我使用fork()& exec()我可以让.sh脚本与我的perl脚本并行运行吗? Perl脚本不会等待子进程并继续执行.所以我的perl脚本并不关心子进程的输出,而只关心命令有效并且正在运行.有点像调用脚本在后台运行.
我是否可以通过某种安全措施来了解子进程是否正确退出?
解决方法If I use fork() & exec() can I get the .sh script to run in parallel to my perl script? […] Sort of like calling the script to run in the background.
是.叉子和exec实际上是shell在后台运行命令的方式.
Is there some sort of safety I can implement to kNow that the child process exited correctly as well?
是的,使用waitpid()并查看存储在$中的返回值?
就像提到的@rohanpm一样,perlipc手册页有很多有用的例子说明了如何做到这一点.这是最相关的一个,其中为SIGCHLD设置信号处理程序(当子进程终止时将发送给父进程)
use POSIX ":sys_wait_h";$SIG{CHLD} = sub { while ((my $child = waitpID(-1,WNOHANG)) > 0) { $KID_Status{$child} = $?; }}; 总结 以上是内存溢出为你收集整理的perl fork()&exec()全部内容,希望文章能够帮你解决perl fork()&exec()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)