使用 sysctl 了解初始化脚本错误

使用 sysctl 了解初始化脚本错误

我制作了自己的初始化脚本,用于在mod-mono-server2容器内启动 Mono Web 应用程序(我没有使用AutoHosting,我知道这一点)。

当我使用 openSUSE 11.4 时,init我能够在控制台上准确读取出错的原因。现在我必须将我的应用程序迁移到运行 openSUSE 12.1 的服务器,该服务器使用systemctl,弄清楚它为何无法启动真是太麻烦了。

启动命令只是sudo -u mono-user mod-mono-server2 [params]将 PID 写入文件/var/run/spambusters/(当我想停止时将其终止)的典型命令。当我尝试这样做时,/etc/init.d/spambusters start我只得到一个通用的Job failed. See system logs and 'systemctl status' for details.

但我无法获得更多信息.........

spambusters@dom:~/source> sudo systemctl status spambusters.service
spambusters.service - LSB: Spambusters instance (as spambusters)
      Loaded: loaded (/etc/init.d/spambusters)
      Active: failed since Fri, 07 Sep 2012 20:37:56 +0200; 1min 37s ago
     Process: 29731 ExecStart=/etc/init.d/spambusters start (code=exited, status=1/FAILURE)
      CGroup: name=systemd:/system/spambusters.service
          â”” 29744 sudo -u spambusters /usr/bin/mod-mono-server2 --nonstop --port 8089 --address 127.0.0.1 --applicat...
spambusters@dom:~/so

系统日志/var/log/messages仅包含

Sep  7 20:37:56 dom sudo:     root : TTY=console ; PWD=/ ; USER=spambusters ; COMMAND=/usr/bin/mod-mono-server2 --nonstop --port 8089 --address 127.0.0.1 --applications /:/home/spambusters/srv/www/domains/www.burnthespam.info/htdocs

虽然我理解这个问题也适用于 serverfault.com,因为它涉及服务器管理,我的直接问题是

当根进程是 systemctl 而不是 init 时,如何在 init 脚本中找到有关失败的更多信息?

答案1

如果操作系统使用 systemd-journald,

journalctl -a _SYSTEMD_UNIT=spambusters.service

(最新的 systemd 版本在 中显示相同systemctl status,但​​ OpenSuSE 有一个较旧的版本。)


还,不使用sudo如果您只希望它以不同的用户身份运行。使用User=spambusters反而。

相关内容