題 運行級別3上的ssh服務器


我一直在嘗試在桌面上設置ssh服務器以進行遠程訪問,並且遇到了一些問題。我發現的第一個是sshd沒有在啟動時啟動。我一跑:

sudo service sshd start

手動我能夠從自己ssh到計算機,所以我知道正確安裝ssh守護進程。現在我只想讓它在啟動時啟動。

在調查之後我找到了

/etc/rc.d/rc3.d 

我找到了一個腳本

K##sshd

或類似的規定。我相信K意味著當進入運行級別3時,它正在關閉sshd。我需要做的就是讓它開始創建一個文件S ## sshd讓它重新啟動或者有更好的方法來解決這個問題。我想在得到重命名並在預感中創建隨機文件之前,我應該得到更多知識淵博的意見。


2
2018-05-16 14:58


起源




答案:


我相信K意味著當進入運行級別3時,它正在關閉   sshd

是。 K代表殺人。

這是舊的SystemV風格啟動。基本腳本都在init.d中,並且rc?.d目錄中有各種具有特定命名約定(S00 ...,K99 ...)的符號鏈接,它們實際上是從這些目錄運行的。

當您更改運行級別(例如1到3)時,init進程會生成一個腳本,該腳本將進入舊運行級別的目錄(/etc/rc.d/rc1.d/)並運行以K開頭的所有腳本

K_NUMBER_some_service stop

然後轉到新運行級別的目錄(在本例中為/etc/rc.d/rc3.d)並運行以S開頭的所有腳本

S_NUMBER_some_service start

腳本按字母順序運行,順序通常由  範圍從00-99。順序很重要 - 您不希望在開始聯網之前啟動sshd。

理論上,如果你知道如何確定它應該運行的數量/順序,你可以手動執行符號鏈接。大多數腳本都將此訂單號作為註釋(嘗試: head /etc/rc.d/init.d/sshd)。但你最好使用適當的工具來完成工作。在Redhat上,有 ntsysv,並且 system-config-services。如果您願意,甚至可以使用命令行工具 chkconfig。我認為

chkconfig --level 2345 sshd on

會做你想做的。驗證 chkconfig --list sshd


6
2018-05-16 15:51



ntsysv做到了,我有點想在原始文件中挖掘我的經驗水平不是聰明的方法。 - Godric Seer


Redhat使用ntsysv工具為rcN.d目錄啟用/禁用服務。


2
2018-05-16 15:08





如果您希望以運行級別3(多用戶模式,僅限控制台登錄)登錄,那麼您想要做的就是 $ sudo init 3 。另一種方法是添加內核參數“3”,並在grub啟動時按“e”修改內核啟動選項。

警告:將此應用於在運行級別5上運行的計算機(多用戶模式,帶有顯示管理器以及控制台登錄)將終止X11並強制您以控制台模式登錄。


0
2018-05-16 15:08