Linux 如何将包含SysV init脚本的RPM包移植到systemd?
我已经为我的守护程序创建了一个RPM包,它在安装时在/etc/init.d下创建服务初始化脚本/ 现在我想为CentOS7.1移植这个RPM包,并使用systemd framework通过引导以及管理员通过启动/停止命令来启动服务 我找不到任何教程。请帮忙 编辑: 我尝试了苏奇先生的建议 我试过了,这是我的观察结果 基于sysV的框架(CentOS6.5)Linux 如何将包含SysV init脚本的RPM包移植到systemd?,linux,rpm,init,centos7,systemd,Linux,Rpm,Init,Centos7,Systemd,我已经为我的守护程序创建了一个RPM包,它在安装时在/etc/init.d下创建服务初始化脚本/ 现在我想为CentOS7.1移植这个RPM包,并使用systemd framework通过引导以及管理员通过启动/停止命令来启动服务 我找不到任何教程。请帮忙 编辑: 我尝试了苏奇先生的建议 我试过了,这是我的观察结果 基于sysV的框架(CentOS6.5) [root@adil工作]#/etc/init.d/daemon_脚本状态 服务守护程序:已停止 [root@adil工作]#/etc/in
[root@adil工作]#/etc/init.d/daemon_脚本状态
服务守护程序:已停止
[root@adil工作]#/etc/init.d/daemon_脚本启动
正在启动守护程序:正在初始化守护程序。。。[确定]
[root@adil工作]#
[root@adil工作]#/etc/init.d/daemon_脚本状态
服务守护进程:正在运行
[root@adil工作]#
[root@adil工作]#/etc/init.d/daemon_脚本停止
关闭父守护程序:[确定]
[root@adil工作]#/etc/init.d/daemon_脚本状态
服务守护程序:已停止
[root@adil工作]#
=============在基于systemd的框架上,我在CentOS7.1上安装了相同的RPM
[root@localhostx86_64]#/etc/init.d/daemon_脚本
用法:/etc/init.d/daemon_脚本{start | stop | restart | status}
[root@localhostx86_64]#/etc/init.d/daemon_脚本启动
启动守护程序\u脚本(通过systemctl):警告:磁盘上的守护程序\u脚本服务的单位文件已更改,建议“systemctl守护程序重新加载”。
守护进程脚本服务的作业失败。有关详细信息,请参阅“systemctl状态守护程序\u script.service”和“journalctl-xn”。
[失败]
[root@localhostx86_64]#systemctl后台程序重新加载
[root@localhostx86_64]#systemctl状态守护程序_脚本.服务
daemon\u script.service-SYSV:启动和停止测试守护程序服务。
load:load(/etc/rc.d/init.d/daemon\u脚本)
激活:自2015-09-11周五15:30:44 IST以来失败(结果:退出代码);32秒前
Sep 11 15:30:44 localhost.localdomain systemd[1]:启动SYSV:start和st.
9月11日15:30:44 localhost.localdomain系统D[1]:守护进程\u脚本.service:cont.
Sep 11 15:30:44 localhost.localdomain systemd[1]:无法启动SYSV:start…
Sep 11 15:30:44 localhost.localdomain systemd[1]:单元守护进程\u script.service…
提示:某些行已省略,请使用-l完整显示。
[root@localhostx86_64]#systemctl状态守护程序_script.service-l
daemon\u script.service-SYSV:启动和停止测试守护程序服务。
load:load(/etc/rc.d/init.d/daemon\u脚本)
激活:自2015-09-11周五15:30:44 IST以来失败(结果:退出代码);46秒前
Sep 11 15:30:44 localhost.localdomain systemd[1]:启动SYSV:启动和停止测试守护程序服务….
Sep 11 15:30:44 localhost.localdomain systemd[1]:守护进程\u脚本.service:控制进程已退出,code=exited status=203
Sep 11 15:30:44 localhost.localdomain systemd[1]:无法启动SYSV:start和stop测试守护程序服务。
Sep 11 15:30:44 localhost.localdomain systemd[1]:单元守护程序\u script.service进入失败状态。
[root@localhostx86_64]#
journalctl-xn的输出
——日志从2015-09-11星期五14:50:35 IST开始,到2015-09-11星期五15:40:01 IST结束--代码>
Sep 11 15:31:03 localhost.localdomain systemd[1]:[/usr/lib/systemd/system/dm event.socket:10]节“socket”中未知左值“RemoveOnStop”
Sep 11 15:39:33 localhost.localdomain systemd[1]:启动SYSV:启动和停止测试守护程序服务….
--主题:单元守护进程\u script.service已启动
--定义人:systemd
——支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
--单元守护程序\u script.service已开始启动。
Sep 11 15:39:33 localhost.localdomain systemd[8509]:执行步骤失败
生成/etc/rc.d/init.d/daemon\u脚本:执行格式错误
--主题:无法执行进程/etc/rc.d/init.d/daemon_脚本
--定义人:systemd
——支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
--进程/etc/rc.d/init.d/daemon_脚本无法执行且失败。
--
——执行此过程时返回的错误号为8。
Sep 11 15:39:33 localhost.localdomain systemd[1]:守护进程\u脚本.service:控制进程已退出,code=exited status=203
Sep 11 15:39:33 localhost.localdomain systemd[1]:无法启动SYSV:start和stop测试守护程序服务。
--主题:单元守护程序\u脚本.service已失败
--定义人:systemd
——支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
--单元守护程序\u script.service失败。
--
——结果失败。
Sep 11 15:39:33 localhost.localdomain systemd[1]:单元守护进程\u script.service进入失败状态。
Sep 11 15:40:01 localhost.localdomain systemd[1]:创建了slice user-0.slice。
--主题:单元用户-0.slice已完成启动
--定义人:systemd
——支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
<代码
# systemctl daemon-reload
# cat /etc/init.d/foo
#!/usr/bin/sh
echo ahoy
# chmod a+x /etc/init.d/foo
# systemctl start foo
Failed to start foo.service: Unit foo.service failed to load: No such file or directory.
# systemctl daemon-reload
# systemctl start foo
# journalctl -xn
-- Subject: Unit foo.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit foo.service has finished starting up.
--
-- The start-up result is done.
# service foo start
ahoy