Systemd服务手动启动正常但开机启动后立即停止的问题求助
Systemd服务手动启动正常但开机启动后立即停止的问题求助
各位好,我碰到一个百思不得其解的systemd服务问题,想请大家帮忙分析下:
我写了一个极简的systemd服务,手动执行systemctl start my-application.service启动正常,对应的stop命令也能正常停止服务,但奇怪的是,系统开机的时候,服务明明被正确启动了,却会立刻自动停止,还触发了ExecStop脚本。完全搞不懂为啥手动和开机启动的行为会不一样。
下面是我的服务配置:
[Unit] After=network.target [Service] ExecStart=start-application.sh ExecStop=stop-application.sh SendSIGKILL=no KillMode=none [Install] WantedBy=default.target
启动脚本start-application.sh的内容是这样的:
#!/bin/bash . /home/me/app-settings cd /home/me/$APPLICATION/ ./$APPLICATION
其中$APPLICATION变量是从/home/me/app-settings里读取的,就是启动一个简单的程序——我甚至特意换成了一个啥也不干就等着Ctrl+C的测试程序,结果问题还是一样。
我对比了两种场景下的systemctl status输出,差别很大:
开机启动后的服务状态:
○ gp-application.service Loaded: loaded (/etc/systemd/system/gp-application.service; enabled; preset: enabled) Active: inactive (dead) since Mon 2024-02-19 12:03:09 +01; 19s ago Duration: 1.859s Process: 586 ExecStart=start-application.sh (code=exited, status=0/SUCCESS) Process: 746 ExecStop=stop-application.sh (code=exited, status=0/SUCCESS) Main PID: 586 (code=exited, status=0/SUCCESS) CPU: 64ms Feb 19 12:03:08 controller su[757]: (to gp) root on none Feb 19 12:03:08 controller su[757]: pam_unix(su-l:session): session opened for user gp(uid=1000) by (uid=0) Feb 19 12:03:08 controller su[757]: pam_unix(su-l:session): session closed for user gp Feb 19 12:03:08 controller su[760]: (to gp) root on none Feb 19 12:03:08 controller su[760]: pam_unix(su-l:session): session opened for user gp(uid=1000) by (uid=0) Feb 19 12:03:08 controller su[760]: pam_unix(su-l:session): session closed for user gp Feb 19 12:03:08 controller su[763]: (to gp) root on none Feb 19 12:03:08 controller su[763]: pam_unix(su-l:session): session opened for user gp(uid=1000) by (uid=0) Feb 19 12:03:09 controller su[763]: pam_unix(su-l:session): session closed for user gp Feb 19 12:03:09 controller systemd[1]: gp-application.service: Deactivated successfully.
手动启动后的服务状态:
● gp-application.service Loaded: loaded (/etc/systemd/system/gp-application.service; enabled; preset: enabled) Active: active (running) since Mon 2024-02-19 12:04:32 +01; 4s ago Main PID: 826 (start-applicati) Tasks: 2 (limit: 9279) Memory: 3.2M CPU: 26ms CGroup: /system.slice/gp-application.service ├─826 /bin/bash /usr/local/bin/start-application.sh └─840 . speedy Feb 19 12:04:33 controller su[837]: (to gp) root on none Feb 19 12:04:33 controller su[837]: pam_unix(su-l:session): session opened for user gp(uid=1000) by (uid=0) Feb 19 12:04:33 controller su[837]: pam_unix(su-l:session): session closed for user gp Feb 19 12:04:33 controller start-application.sh[840]: SPEEDY 7.0.0 Feb 19 12:04:33 controller start-application.sh[840]: RT-APP-COMMON 2.0.0 Feb 19 12:04:33 controller start-application.sh[840]: 12:04:33.587 utils.cpp :117 - utilsInit() Utils successfully initialized. Feb 19 12:04:33 controller start-application.sh[840]: 12:04:33.587 utils.cpp :244 - checkAndCreateRTLockFile() RT lock file: /tmp/.rt-app-lock successfully created. Feb 19 12:04:33 controller start-application.sh[840]: 12:04:33.587 main.cpp :768 - InitProgram() Reading font table Feb 19 12:04:33 controller start-application.sh[840]: 12:04:33.587 fnttable.cpp :144 - ReadFontTable() Error font file font12x8.aff Feb 19 12:04:33 controller start-application.sh[840]: 12:04:33.587 common-parread.cpp :83 - readCommonParameters() EventSocket disabled as requested via parameter file.
真心搞不懂哪里出问题了,有没有大佬能指点下?
备注:内容来源于stack exchange,提问作者Luca Sagoleo
相关产品推荐
相关产品推荐

