我制作了自己的初始化脚本,用于在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
反而。