Apache-2.2

辨識 Fedora 16 中的服務錯誤

  • June 23, 2012

您如何找到 Fedora 16 中服務啟動失敗的原因?Fedora 16 中新的 systemctl 命令似乎可怕地掩蓋了任何有用的日誌資訊。

[root@host ~]# systemctl start httpd.service
Job failed. See system logs and 'systemctl status' for details.
[root@host ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server (prefork MPM)
     Loaded: loaded (/lib/systemd/system/httpd.service; enabled)
     Active: failed since Thu, 21 Jun 2012 16:26:56 -0400; 1min 23s ago
    Process: 2119 ExecStop=/usr/sbin/httpd $OPTIONS -k stop (code=exited, status=0/SUCCESS)
    Process: 2215 ExecStart=/usr/sbin/httpd $OPTIONS -k start (code=exited, status=1/FAILURE)
   Main PID: 1062 (code=exited, status=0/SUCCESS)
     CGroup: name=systemd:/system/httpd.service

所以第一個命令失敗了……它告訴我執行另一個命令……它只是告訴我該命令返回了一個錯誤程式碼。真正的錯誤在哪裡?

更令人沮喪的是,日誌中似乎沒有寫入任何內容:

[root@host ~]# ls -lah /var/log/httpd/
total 8.0K
drwx------.  2 root root 4.0K Jun 21 16:19 .
drwxr-xr-x. 21 root root 4.0K Jun 20 16:33 ..
-rw-r-----   1 root root    0 Jun 21 16:19 modsec_audit.log
-rw-r-----   1 root root    0 Jun 21 16:19 modsec_debug.log

好的 - 看起來您遇到的問題已經討論過了,並將在新版本的 Fedora 中更新,但同時您可以執行以下操作:

修改文件 /etc/systemd/system.conf - 將選項 DefaultStandardError 更改為 DefaultStandardError=syslog

當你現在執行這個並且伺服器有一個語法錯誤時,它會告訴你在日誌中檢查錯誤:

$$ root@Acer-Laptop ~ $$# systemctl start httpd.service 作業失敗。有關詳細資訊,請參閱系統日誌和“systemctl status”。 我可以看到這也寫成功了:

$$ root@Acer-Laptop ~ $$# 少 /var/log/messages | grep httpd Jun 23 09:24:03 Acer-Laptop httpd$$ 4896 $$:/etc/httpd/conf/httpd.conf 第 32 行的語法錯誤:Jun 23 09:24:03 Acer-Laptop httpd$$ 4896 $$:無效命令“SyntaxError”,可能拼寫錯誤或由伺服器配置中未包含的模組定義 Jun 23 09:24:03 Acer-Laptop systemd$$ 1 $$:httpd.service:控制程序退出,code=exited status=1 Jun 23 09:24:03 Acer-Laptop systemd$$ 1 $$: 單元 httpd.service 進入失敗狀態。 希望這可以幫助!

引用自:https://serverfault.com/questions/401083