如何在啟動時自動運行/etc/init/ttys0.conf?

如何在啟動時自動運行/etc/init/ttys0.conf?

我有一個腳本在/etc/init/ttyS0.conf.我是c配置 KVM 來賓以進行串行控制台訪問所以即使網路介面壞了,我仍然可以透過串行連接存取它。

我可以ttyS0透過運行來啟動它sudo start ttyS0,它工作得很好,直到我重新啟動。重新啟動系統後,ttyS0程式不再運作。

如何讓這個腳本在啟動時自動啟動?

謝謝


我的腳本如下圖所示:

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L 115200 ttyS0 xterm

答案1

這裡

respawn
console none

start on (local-filesystems)
stop on [!12345]

script

exec start ttyS0
end script

我懷疑應該可以工作。否則,將 start tty0 替換為啟動您要啟動的內容的腳本

答案2

做這件事有很多方法。

如果腳本呼叫一個進程,您可以使用/etc/init.d。

將腳本放入 /etc/init.d 中,然後您需要使用 chmod a+x "script" 來變更檔案的權限。然後運行 update-rc.d“script”defaults,這將使一切正常運作。該腳本現在應該在啟動時啟動。

以下是一些其他範例:

實施例1

實施例2

答案3

Ubuntu 使用基於運行等級的 SYSV 啟動(與 Debian 相同)。

您必須將腳本新增至目前使用的運行等級。對於 Ubuntu,使用的運行級別在裡面預設進程數為2。因此,您必須將 ttyS0.conf 新增至 rC2.d 目錄並聲明您要啟動它(而不是停止)。您可以透過向腳本添加軟連結來實現此目的,如下所示:

ln -s /etc/init/ttyS0.conf /etc/rc2.d/S99ttyS0.conf

S99 前綴表示「S」-> 啟動腳本以及必須啟動腳本的「99」順序(如果需要在此腳本之後執行其他腳本,請降低此數字)。

然後你需要在重新啟動(運行等級6)或關閉(運行等級0)時停止它:

ln -s /etc/init/ttyS0.conf /etc/rc0.d/S99ttyS0.conf
ln -s /etc/init/ttyS0.conf /etc/rc6.d/S99ttyS0.conf

前綴類似,只是「S」-> 停止腳本(僅適用於運行等級 0 和 6)。

希望這可以幫助。更多資訊這裡

相關內容