动态命名进程

时间:2013-10-07 08:21:00

标签: python perl process fork

程序是否可以创建它启动的动态名称进程? 考虑着名的叉炸弹代码:

 :(){ :|:& };:

 import os
 while os.fork() or True: os.fork()

是否可以让它在每次执行时生成一个新的随机进程名称?这将使得摆脱它变得更加困难。 它不一定必须是perl或python,我也很乐意看到其他语言的例子。

1 个答案:

答案 0 :(得分:1)

通常可以设置进程名称,但此功能因操作系统而异。在Perl中,我们可以分配$0变量,该变量会更改当前进程名称:

for my $i (1 .. 5) {
  fork && next;
  $0 = "foobar: $i";
  sleep 5;
  exit;
}

print for grep /foobar/, `ps aux`;

产生输出:

1000      1231  0.0  0.0   7836   552 pts/5    S+   13:32   0:00 foobar: 1
1000      1232  0.0  0.0   7836   552 pts/5    S+   13:32   0:00 foobar: 2
1000      1233  0.0  0.0   7836   552 pts/5    S+   13:32   0:00 foobar: 3
1000      1235  0.0  0.0   7836   552 pts/5    S+   13:32   0:00 foobar: 4
1000      1236  0.0  0.0   7836   552 pts/5    S+   13:32   0:00 foobar: 5

或类似的东西。我不知道如何做到这一点,但shell和Python应该有类似的功能。