Linux
xinetd 無法啟動
愚蠢的問題…我無法在我的 linux 機器(CENTOS 4.8)上啟動 xinetd。
到目前為止,我已經將其刪除並通過 yum 重新安裝。當我嘗試啟動它、停止它等時,我根本沒有收到任何錯誤。
[root@server ~]# service xinetd stop [root@server ~]# service xinetd start [root@server ~]# service xinetd restart
我希望從系統中看到一些標準狀態(例如“服務已啟動 -
$$ OK $$" 我也沒有在 /var/log/messages 中看到任何日誌條目 我嘗試使用 -d 選項執行初始化腳本,但 nada。沒有錯誤。沒有服務啟動的確認消息。沒有。
有任何想法嗎?
$$ UPDATE $$- 根據建議,這是 cat /etc/init.d/xinetd 的輸出
#!/bin/bash # # xinetd This starts and stops xinetd. # # chkconfig: 345 56 50 # description: xinetd is a powerful replacement for inetd. \ # xinetd has access control mechanisms, extensive \ # logging capabilities, the ability to make services \ # available based on time, and can place \ # limits on the number of servers that can be started, \ # among other things. # # processname: /usr/sbin/xinetd # config: /etc/sysconfig/network # config: /etc/xinetd.conf # pidfile: /var/run/xinetd.pid PATH=/sbin:/bin:/usr/bin:/usr/sbin # Source function library. . /etc/init.d/functions # Get config. test -f /etc/sysconfig/network && . /etc/sysconfig/network # More config test -f /etc/sysconfig/xinetd && . /etc/sysconfig/xinetd # Check that we are root ... so non-root users stop here [ `id -u` = 0 ] || exit 1 # Check that networking is up. [ "${NETWORKING}" = "yes" ] || exit 0 [ -f /usr/sbin/xinetd ] || exit 1 [ -f /etc/xinetd.conf ] || exit 1 RETVAL=0 prog="xinetd" start(){ echo -n $"Starting $prog: " # Localization for xinetd is controlled in /etc/synconfig/xinetd if [ -z "$XINETD_LANG" -o "$XINETD_LANG" = "none" -o "$XINETD_LANG" = "NONE" ]; then unset LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE else LANG="$XINETD_LANG" LC_TIME="$XINETD_LANG" LC_ALL="$XINETD_LANG" LC_MESSAGES="$XINETD_LANG" LC_NUMERIC="$XINETD_LANG" LC_MONETARY="$XINETD_LANG" LC_COLLATE="$XINETD_LANG" export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE fi unset HOME MAIL USER USERNAME daemon $prog -stayalive -pidfile /var/run/xinetd.pid "$EXTRAOPTIONS" RETVAL=$? echo touch /var/lock/subsys/xinetd return $RETVAL } stop(){ echo -n $"Stopping $prog: " killproc $prog RETVAL=$? echo rm -f /var/lock/subsys/xinetd return $RETVAL } reload(){ echo -n $"Reloading configuration: " killproc $prog -HUP RETVAL=$? echo return $RETVAL } restart(){ stop start } condrestart(){ [ -e /var/lock/subsys/xinetd ] && restart return 0 } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status $prog ;; restart) restart ;; reload) reload ;; condrestart) condrestart ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" RETVAL=1 esac exit $RETVAL
使用“strace”命令調試 xinetd,例如:
yum install strace strace /usr/sbin/xinetd 2>&1 | tee log.txt
然後檢查 log.txt 以查看您的配置出了什麼問題。
我建議您備份您的配置,解除安裝 xinedt,刪除 /etc/xinetd.conf 和 /etc/xinetd.d/,然後使用 yum 重新安裝。當您能夠啟動它時,您可以逐步添加更多服務。
當服務沒有啟動並且沒有給出錯誤消息時,可能值得嘗試手動啟動服務。首先要做的是執行:
# bash -x /etc/init.d/xinetd start
這將顯示為啟動服務而執行的所有命令。這可能會給你一個關於它為什麼沒有啟動的線索。如果沒有,那麼您可以找到用於啟動守護程序的最終命令並手動執行它。這通常被證明是有幫助的。如果這仍然沒有幫助,您應該在 strace 下執行該命令。
(注意:我很久沒用CentOS了,所以路徑和東西可能不正確。我認為它還沒有使用upstart,但如果是,請查看/etc/event.d/xinetd或/ etc/init/xinetd.conf 並且應該有手動執行的命令。)