2013-10-07 56 views
1

程序是否可以動態創建啓動的名稱進程? 考慮著名的fork炸彈代碼:動態命名進程

:(){ :|:& };: 

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

有沒有可能讓它每次它執行時產生一個新的隨機過程的名字嗎?這會讓它擺脫困難很多。 它不一定是在Perl或Python中,我很想看到其他語言的例子。

回答

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應該具有類似的功能。

+0

這很棒,它適用於我認爲重要的所有操作系統。 – spydon