程序是否可以动态创建它启动的进程名称?考虑著名的分叉炸弹代码:
:(){ :|:& };:
或者
import os
while os.fork() or True: os.fork()
是否可以让它每次执行时生成一个新的随机进程名称?这将使摆脱它变得更加困难。它不一定必须是 perl 或 python,我也希望看到其他语言的示例。
通常可以设置进程名称,但此功能因操作系统而异。在 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 应该有类似的功能。