2014-01-15 30 views
1

我:如何列出在腳本中分離的進程?

$ cat ./test 
#!/bin/bash 

gulp dev & 

然後運行它:

$ ./test 
... 

(..按回車鍵獲取命令提示符) 腳本的命令啓動node過程。但我沒有它在後臺進程中:

$ jobs -p 

打印空列表。所以我們的目標是能夠列出/終止(多個)在單個腳本中啓動和分離的進程。如何?

回答

2

您的交互式shell僅管理它啓動的作業。當您將腳本作爲命令運行時,後臺進程由子shell啓動,而不是原始shell。

您需要source劇本,所以它會被你的交互shell中運行:

source ./test 
+0

大,它的作品!一個小的相關問題:alias seskill ='kill $(jobs -p)'不起作用(而是打印kill的用法)。如何治療? –

+0

'$(...)'在子shell中運行,所以它不能列出當前shell的作業。 – Barmar

+0

所以有可能創建一個快捷方式來終止所有會話的後臺進程? –

相關問題