God*_*eer 2 sshd runlevel scientific-linux redhat-enterprise-linux
我一直在尝试在桌面上设置 ssh 服务器以进行远程访问,但遇到了一些问题。我发现的第一个是 sshd 没有在启动时启动。一旦我运行:
sudo service sshd start
Run Code Online (Sandbox Code Playgroud)
手动我能够从自身 ssh 进入计算机,所以我知道 ssh 守护程序已正确安装。现在我只希望它在启动时启动。
调查后我发现
/etc/rc.d/rc3.d
Run Code Online (Sandbox Code Playgroud)
我找到了一个脚本
K##sshd
Run Code Online (Sandbox Code Playgroud)
或类似的规定。我相信 K 意味着当进入运行级别 3 时,它正在关闭 sshd。我需要做的只是创建一个文件 S##sshd 让它重新启动,或者有更好的方法来解决这个问题。我想在我凭直觉重命名和创建随机文件之前,我应该获得一些更有见地的意见。
我相信 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
Run Code Online (Sandbox Code Playgroud)
然后转到新运行级别的目录(在本例中为 /etc/rc.d/rc3.d)并运行所有以 S 开头的脚本
S_NUMBER_some_service start
Run Code Online (Sandbox Code Playgroud)
脚本按字母顺序运行,顺序通常由范围从 00-99的NUMBER确定。顺序很重要 - 您不想在开始联网之前启动 sshd。
理论上,如果您知道如何确定它应该运行的数量/顺序,您可以手动执行符号链接。大多数脚本将此订单号作为注释(尝试:)head /etc/rc.d/init.d/sshd。但是你最好使用合适的工具来完成这项工作。在 Redhat 上,有ntsysv和system-config-services。如果您愿意,您甚至可以使用命令行工具chkconfig。我认为
chkconfig --level 2345 sshd on
Run Code Online (Sandbox Code Playgroud)
会做你想做的。验证chkconfig --list sshd