2010-08-03 91 views
0

我正在編寫一個Perl腳本,我需要執行Unix Ctrl + Z關於腳本。 我該如何在Perl中做到這一點?如何在Perl腳本中按Ctrl-Z

謝謝。

+0

是否要將已運行的進程發送到後臺或啓動後臺? – Ether 2010-08-03 16:47:34

回答

5

從perl的,你可以發送信號到過程與功能擊殺,具有相同的名稱作爲Unix命令它可以做同樣的事情。相當於按Ctrl +ž運行

殺-SIGTSTP PID

你需要找出數值的三偏磷酸鈉信號有您的系統上。您會通過在命令行上運行

殺-l三偏磷酸鈉

做到這一點。比方說,這將返回20

然後在你的Perl腳本,你會增加

殺死20 => $$;

這將三偏磷酸鈉信號發送到當前正在運行的進程ID($$)

更新: 由daxim所述,您可以跳過「殺-l」的一部分,並提供名稱的信號:

kill 'TSTP' => $$; 
+2

太複雜了。只要'殺死'TSTP'...','殺死'HUP'...等等。請參閱http://p3rl.org/ipc – daxim 2010-08-03 08:26:28

+0

非常感謝:) – 2010-08-03 08:28:07

+0

@daxim謝謝你,對於語法來說是對的,儘管我對於不瞭解信號的人來說,真的不會將perlipc當作溫柔的幫助 – ivancho 2010-08-03 09:02:29

-2

在bash CTRL +ž停止當前任務和與%把它放在後臺的JobId您可以返回到這個工作。我不知道你的意思,因爲我想CTRL +ž通過慶典抓..

+0

我想讓腳本發送bash在後臺放置一個特定的工作。 – 2010-08-03 07:51:41