centos7源码编译升级openssh使用systemctl命令无法管理服务问题解决

举报
江晚正愁余 发表于 2024/01/16 12:01:19 2024/01/16
【摘要】 centos7 系统下,通过源码手动安装升级openssh后使用systemctl命令无法管理sshd服务问题解决 问题描述之前在centos7系统下手动安装升级openssh后,使用systemctl命令管理sshd服务都正常,但是今天安装完成后,发现使用systemctl start sshd 命令启动sshd服务会卡住,过一会显示启动超时,查询状态发现sshd服务启动失败。但是,通过...

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

问题描述

之前在centos7系统下手动安装升级openssh后,使用systemctl命令管理sshd服务都正常,但是今天安装完成后,

发现使用systemctl start sshd 命令启动sshd服务会卡住,过一会显示启动超时,查询状态发现sshd服务启动失败。

但是,通过源码包自带的sshd.init 脚本文件可以正常的管理sshd服务的启停。

解决方法

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

将源码安装包中 contrib/redhat/sshd.init 文件复制到 /etc/init.d/ 目录下并添加可执行权限。

cp contrib/redhat/sshd.init /etc/init.d/
chmod +x /etc/init.d/sshd.init

然后,使用该脚本启动sshd服务
/etc/init.d/sshd.init start

这时,/run/systemd/generator.late/ 目录下会产生一个名为 sshd.service的 systemd 服务配置文件。
将这个文件复制到 systemd 的服务配置文件目录下
cp /run/systemd/generator.late/sshd.service /usr/lib/systemd/system/sshd.service

这时再通过systemctl命令操作sshd服务就正常了。
查看该自动生成的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
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。