可以将这个微小的代码转换为Bash代码:
user/bin/perl
sleep(300);
system("killall -9 perl &");
sleep(5)
答案 0 :(得分:6)
#!/bin/bash
sleep 300
killall -9 perl &
sleep 5
答案 1 :(得分:2)
sleep 300
killall -9 perl &
sleep 5
答案 2 :(得分:1)
perl程序不仅会杀死所有其他perl进程,还会杀死它本身,因此功能等效的转换将类似于
#!/bin/bash
sleep 300
killall -9 perl &
kill -9 $$ &
sleep 5
最终sleep 5
可能永远不会在原始脚本或此脚本中执行,尽管睡眠命令有可能至少开始执行。
如果翻译成bash的原因正是如此,即程序被认为不自杀,其他答案更好。
正如Dennis Williamson所说,在任何一种情况下,你的脚本都应该不使用kill -9并且通常不会全局杀死,但是如果它可能有不好的副作用,它取决于你的环境。