2014-01-09 18 views
4

am重新生成ttyS1上的/ bin/bash port.ttyS0是我的控制檯。 inittab條目如下。如何通過init在linux中殺死重新生成的進程

::重生:/斌/慶典<的/ dev /就是ttyS1>的/ dev/2就是ttyS1>的/ dev /就是ttyS1

我的問題是如何禁用/殺respwning,這樣我可以使用串口 爲其他應用。

回答

4

您可以像其他進程一樣殺死該bash進程。但是,init立即重新生成 - 沒有任何收穫。

要禁用該進程,您必須編輯/ etc/inittab並註釋掉該行。 要通知init這個改變,你必須發送一個SIGHUP到init:kill -HUP pid-of-init。 (我認爲pid-of-init總是1)。

如果您在某些情況下需要將bash連接到ttyS1,則可能需要指定init應該啓動bash的某些運行級別。

希望這個答案可以幫助...(見man inittab瞭解更多信息)

+0

好的謝謝你的回覆。如果我們終止重新生成的進程並修改/註釋掉inittab中的條目就足以讓init不再重新生成。 – user2857290

+1

不,反過來 - 首先編輯inittab,然後發出init信號,然後終止剩下的進程。 –

+0

我的Ubuntu上沒有/ etc/inittab,但配置位於/etc/init/proc_name.conf中。我試圖刪除它併發出init信號,但它沒有幫助。任何其他想法? –

4

在我的Ubuntu,這是對我工作:

sudo rm -f /etc/init/<proc_name>.conf 
sudo initctl stop <proc_name> 

它返回的消息:

initctl: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist 

,但是這個過程無論如何都沒有重生。

1

inittab必須重新檢查,否則它將啓動該進程。 刪除命令行鏈路處理上的/ etc/inittab文件並執行:

​​

# telinit q 

然後,您可以終止該進程也不會重生。

+1

問題不在於[幫助]中定義的Stack Overflow的主題。請不要回答這些問題;相反,你應該標記他們的注意力,他們將被關閉或適當遷移。 –