OpenSuse 12.3 上我的 /etc/init.d/sculpture 在哪里?

OpenSuse 12.3 上我的 /etc/init.d/sculpture 在哪里?

在全新安装 OpenSuse 12.3 时,我想“守护”一个程序。而且,在互联网上找到的所有示例中,我发现我必须首先创建一个/etc/init.d/myscript基于/etc/init.d/skeleton......

但我没有/etc/init.d/skeleton...这个文件还有其他地方吗?或者也许我需要安装一些东西?

系统是最新的,我先检查了一下。

我知道我可以尝试复制另一个现有/etc/init.d脚本并对其进行修改,或者创建一个新脚本,但我会知道我是否做错了,或者是否有另一种特殊的方法可以在 OpenSuse 上执行此操作。

答案1

我不确定文件在哪里消失,但我希望此更改与/etc/init.d/skeleton传统的替换有关,因为 OpenSUSE 12.与众所周知的 initscripts 完全兼容,但我更喜欢使用启动服务的模型。SysV init daemonsystemdsystemdsystemd

在我看来,传统的初始化脚本可能很棘手,有时,它们可能需要更深入的 shell 脚本知识。另一方面,systemd“initscript”或unit服务的配置文件(man systemd.unit)更容易维护,因为它具有与.INI文件类似的简单语法。您可以尝试编写一些单元文件并通过将该文件拖放到/etc/systemd/system目录中来启用它。该目录的优先级高于默认目录/usr/lib/systemd/system。守护进程单元的示例sshd如下:

[Unit]
Description=OpenSSH Daemon
After=syslog.target network.target

[Service]
EnvironmentFile=/etc/sysconfig/ssh
ExecStartPre=/usr/sbin/sshd-gen-keys-start
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

或者您可以坚持使用您所使用的“旧版”启动脚本。但你会失去一些简洁的功能,systemd例如:

  • 更快的启动时间,真正的服务并行启动
  • 自动依赖性处理
  • 监控服务并自动重启崩溃的服务
  • 以及更多

最后,请记住,如果存在sshd.service与 initscript ( ) 具有相同基本名称的单元 ( /etc/init.d/sshd),则该 initscript 将被忽略,并且systemd将优先使用该单元。

相关内容