辨識 Fedora 16 中的服務錯誤
您如何找到 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 進入失敗狀態。 希望這可以幫助!