Linux 如何将包含SysV init脚本的RPM包移植到systemd?

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

我已经为我的守护程序创建了一个RPM包,它在安装时在/etc/init.d下创建服务初始化脚本/ 现在我想为CentOS7.1移植这个RPM包,并使用systemd framework通过引导以及管理员通过启动/停止命令来启动服务

我找不到任何教程。请帮忙

编辑: 我尝试了苏奇先生的建议

我试过了,这是我的观察结果

基于sysV的框架(CentOS6.5)

[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