我已经在谷歌上搜索了我能想到的这个问题的所有变体,但我只是收到了关于失败服务的问题,而不是systemctl如何处理它们的问题。我有一个服务,我一直在以init. d脚本的形式运行。我们现在使用systemctl,很好。我创建了一个服务文件,它是由systemd-sysv生成器自动生成的文件的轻微修改版本。对于ExecStart和ExecStop,它调用一个bash脚本,如果启动/停止成功,它返回0,如果不成功,则返回非零。
我知道如果“systemctl启动/停止”成功,则没有输出。但是如果两个调用都失败了,我也不会得到任何输出。即使源脚本的返回代码不是,systemctl start/stop命令的返回代码始终为0。很明显,它确实失败了,因为当我运行status命令时,它显示为失败。
这是预期的行为吗?除非您运行单独的状态命令,否则它不应该给出任何失败的指示吗?如果这不是它应该的行为,我如何让它指示发生了失败?
服务文件如下。
[Unit]
SourcePath=/my/service/script.sh
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/my/service/script.sh start
ExecStop=/my/service/script.sh stop
CentOS 7在这里运行良好。也许仔细检查script.sh是否真的返回非零?
$pwd
/etc/systemd/system
$cat me.service
[Unit]
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/systemd/system/die.sh
$cat die.sh
#!/bin/bash
echo "dying"
exit 1
$sudo systemctl start me
Job for me.service failed because the control process exited with error code. See "systemctl status me.service" and "journalctl -xe" for details.
$sudo systemctl status me.service
● me.service
Loaded: loaded (/etc/systemd/system/me.service; static; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2019-09-12 17:55:02 GMT; 8s ago
Process: 19758 ExecStart=/etc/systemd/system/die.sh (code=exited, status=1/FAILURE)
Sep 12 17:55:02 dpsdev-wkr01 systemd[1]: Starting me.service...
Sep 12 17:55:02 dpsdev-wkr01 die.sh[19758]: dying
Sep 12 17:55:02 dpsdev-wkr01 systemd[1]: me.service: control process exited, code=exited status=1
Sep 12 17:55:02 dpsdev-wkr01 systemd[1]: Failed to start me.service.
Sep 12 17:55:02 dpsdev-wkr01 systemd[1]: Unit me.service entered failed state.
Sep 12 17:55:02 dpsdev-wkr01 systemd[1]: me.service failed.
我试图用systemctl配置Tomcat8.5.37,以在Ubuntu16.04上作为守护进程启动服务器。 为此,我在/etc/systemd/system/tomcat8.service创建了以下服务文件: Tomcat服务器是直接从apache下载的,并且只进行了解压缩。JDK是最新的Oracle JDK1.8。 当我通过startup.sh直接启动tomcat时,一切都很好。但是当我使用s
我有两种服务a.service和b.service。a、 显示服务 b、 服务 现在,当我开始b.service,我确信a.service将被启动。在运行时,突然有人扰乱 /home/admin/run.sh和systemd无法启动a.service(也是systemctl状态a.service显示为状态失败)。现在有一个选项,b.service可以知道a.service失败,它应该停止/退出吗?
我有这个错误。有人可以帮帮我吗,我认为这是关于触摸听众的事情......当我松开手指时发生错误。 当我尝试运行此代码时,就会发生这种情况: 来自触摸听众: 这两种方法:
当我试图用appium desktop启动会话时,我得到以下错误: 配置:IOS 11、OSX 10.12、Xcode 8.1、Appium Desktop 1.2.5 错误日志:
现象: 运行 php start.php stop 提示 stop fail 原因:几种可能性 第一种可能性: 前提是以debug方式启动的workerman,开发者在终端按了ctrl z给workerman发送了SIGSTOP信号,导致workerman进入后台并挂起(暂停),所以无法响应stop命令(SIGINT信号)。 解决: 在启动workerman的终端输入fg(发送SIGCONT信号)
从文件夹内部执行“npm start”命令时出现以下错误/ 我在互联网上尝试了多种解决方案,但都无效。