由于在centos7以及RHEL中,系统的启动已经由centos6的SysV变成了SystemD了,虽然原来的init的形式还是可以用的,但是最新的systemd的配置还是比较方便的.
这里我收集了centos7,debian9,ubuntu18.04以及fedora的默认自动启动配置文件
https://github.com/hippoking/public/tree/master/smokeping_init
其中ubuntu和debian还在继续使用老旧的init的方式进行自动启动,centos7和fedora28已经采用最新的systemd的方式了,但是没想到这里面有一个很大的bug,从Fedora17开始就有。。28了还没有修复
在fedora28中,典型的smokeping.service的配置是:
[Unit]
Description=Latency Logging and Graphing System
After=syslog.target network-online.target
[Service]
ExecStart=/usr/sbin/smokeping --nodaemon
ExecReload=/bin/kill -HUP $MAINPID
StandardError=syslog
[Install]
WantedBy=multi-user.target
问题就出现在–nodaemon上。
如果使用了–nodaemon,smokeping就不会以守护进程启动,这样在使用systemctl查看status的时候,会发现smokeping在不断重启或者状态显示不正确
在如下两篇文章中发现了同样的问题:
https://forums.fedoraforum.org/showthread.php?286002-smokeping-2-6-on-fedora-17
https://github.com/oetiker/SmokePing/issues/44
正确的做法是设置smokeping 为守护程序,去掉–nodaemon即可