centos7 系统手动安装openssh后使用systemctl命令无法管理sshd服务问题解决

centos7 系统下,通过源码手动安装升级openssh后使用systemctl命令无法管理sshd服务问题解决

问题描述

之前在centos7系统下手动安装升级openssh后,使用systemctl命令管理sshd服务都正常,但是今天安装完成后,发现使用systemctl start sshd 命令启动sshd服务会卡住,过一会显示启动超时,查询状态发现sshd服务启动失败。
但是,通过源码包自带的sshd.init 脚本文件可以正常的管理sshd服务的启停。

解决方法

以下是我当前情况的解决方案,不代表所有类似情况都适用。

  1. 将源码安装包中 contrib/redhat/sshd.init 文件复制到 /etc/init.d/ 目录下并添加可执行权限。
    cp contrib/redhat/sshd.init /etc/init.d/
    chmod +x /etc/init.d/sshd.init
    
  2. 然后,使用该脚本启动sshd服务
    /etc/init.d/sshd.init start
    
    这时,/run/systemd/generator.late/ 目录下会产生一个名为 sshd.service的 systemd 服务配置文件。
  3. 将这个文件复制到 systemd 的服务配置文件目录下
    cp /run/systemd/generator.late/sshd.service  /usr/lib/systemd/system/sshd.service
    
  4. 这时再通过systemctl命令操作sshd服务就正常了。
  5. 查看该自动生成的service配置文件设置可见,对应的启动、停止等命令都已经换成了对 sshd.init 脚本的操作,而不是原来的对 /usr/sbin/sshd 命令的操作。
    文件内容如下:
    # Automatically generated by systemd-sysv-generator
    
    [Unit]
    Documentation=man:systemd-sysv-generator(8)
    SourcePath=/etc/rc.d/init.d/sshd.init
    Description=SYSV: OpenSSH server daemon
    
    [Service]
    Type=forking
    Restart=no
    TimeoutSec=5min
    IgnoreSIGPIPE=no
    KillMode=process
    GuessMainPID=no
    RemainAfterExit=no
    PIDFile=/var/run/sshd.pid
    ExecStart=/etc/rc.d/init.d/sshd.init start
    ExecStop=/etc/rc.d/init.d/sshd.init stop
    ExecReload=/etc/rc.d/init.d/sshd.init reload
    
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值