以下是BHd.service文件;这是我第一次做到这一点,一切都终于完美运行,除了当我停止服务时,它始终没有失败停止httpd(以及可能在此列出的其他服务)。我真诚地到处寻找答案。我不认为应该这样做。
日志故事简短,我需要在本机开始之前运行smb,nfs,httpd和mariadb。我不希望它们在装置停止或重新装载后停止;现在,firewalld必须关闭。我老实说不能告诉哪一行影响了systemctl stop命令,我读到的所有内容都表明Requires和After只会影响systemctl的启动。
[Unit]
Description=BH
Documentation=somewhere.com
Wants=smb.service nfs.service
After=httpd.service mariadb.service
Requires=httpd.service mariadb.service
Conflicts=firewalld.service
[Service]
Type=forking
PIDFile=/var/run/BHd.pid
ExecStart=/usr/bin/python /var/www/html/pythonscripts/BHd.py start
ExecStop=/usr/bin/python /var/www/html/pythonscripts/BHd.py stop
[Install]
Alias=BHd
WantedBy=smb.service nfs.service
RequiredBy=httpd.service mariadb.service
编辑:更多信息
[root@BHDEMO ~]# systemctl -l | grep BH
BHd.service loaded failed failed Description
[root@BHDEMO ~]#
答案 0 :(得分:0)
简答:systemctl禁用BHd
长答案: 嗯,我觉得很愚蠢...我相信你们中的一些人会想到#34;这家伙正在写一个40k的线路服务,但我不知道!" ...是的,那& #39;我们计算机工程师如何滚动,哈哈。
解决方案: 一遍又一遍地编辑这个文件以试图让它工作,我从来没有尝试过systemctl禁用BHd ...这样做...我在早期的安装部分有几行,WantedBy和RequiredBy如上所示。我在5个小时前意识到这不正确并删除了它。不幸的是,仅仅进行另一次启用是不够的,因为那些行创建了需要通过禁用卸载的目录,然后在没有添加文件和文件夹的情况下重新启用。几乎听起来像是一个应该修复的linux bug,想象多年来像我一样多少浪费了这么多时间。