私がコマンドを実行すると
service httpd restart
サービスが再起動されたが、サーバーが正常に再起動されたというフィードバックはありませんでした。以前のサーバーでも同様の応答が出力されました。
shutting down OK
starting OK
端末出力を開く方法は?私は以下を試しました:
systemctl status httpd.service
journalctl -xn
journalctl -u httpd.service (-f)
これにより、「コマンドが見つかりません」が発生します。このコマンドを実行するとき:
bash -x /etc/init.d/httpd restart
わかりました:
> + ulimit -n 1024
> + ulimit -n 4096
> + ulimit -n 8192
> + ulimit -n 16384
> + ARGV=restart
> + HTTPD=/usr/local/apache/bin/httpd
> + test -f /usr/local/apache/bin/envvars
> + . /usr/local/apache/bin/envvars
> ++ test x '!=' x
> ++ LD_LIBRARY_PATH=/usr/local/apache/lib
> ++ export LD_LIBRARY_PATH
> + LYNX='lynx -dump'
> ++ grep apache_port= /var/cpanel/cpanel.config
> ++ sed -e 's/.*=\([.0-9]*:\)\{0,1\}//;' -e 's/[^0-9]*//g'
> + PORT=80
> + STATUSURL=http://localhost:80/whm-server-status
> ++ ulimit -H -n
> + ULIMIT_MAX_FILES='ulimit -S -n 16384'
> + '[' 'xulimit -S -n 16384' '!=' x ']'
> + ulimit -S -n 16384
> + ERROR=0
> + '[' xrestart = x ']'
> + case $ARGV in
> + /usr/local/apache/bin/httpd -k restart -DSSL
> + ERROR=0
> + exit 0
以下はhttpdスクリプトです:
ulimit -n 1024
uulimit -n 4096
ulimit -n 8192
ulimit -n 16384
ARGV="$@"
HTTPD=/usr/local/apache/bin/httpd
if test -f /usr/local/apache/bin/envvars; then
. /usr/local/apache/bin/envvars
fi
LYNX="lynx -dump"
PORT="$(grep 'apache_port=' /var/cpanel/cpanel.config 2>/dev/null | sed -e 's/.*=\([.0-9]*:\)\{0,1\}//;' -e 's/[^0-9]*//g' 2>/dev/null)"
STATUSURL=http://localhost:${PORT:-80}/whm-server-status
ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"
if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
$ULIMIT_MAX_FILES
fi
ERROR=0
if [ "x$ARGV" = "x" ] ; then
ARGV="-h"
fi
case $ARGV in
start|stop|restart|graceful|graceful-stop)
$HTTPD -k $ARGV –DSSL
ERROR=$?
;;
startssl|sslstart|start-SSL)
# echo The startssl option is no longer supported.
$HTTPD -k start –DSSL
ERROR=$?
;;
configtest)
$HTTPD –t
ERROR=$?
;;
status)
$LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
;;
fullstatus)
$LYNX $STATUSURL
;;
*)
$HTTPD $ARGV
ERROR=$?
esac
exit $ERROR
答え1
CentOS 6の例今後 systemd
;実行中のコマンドは、CentOS 7、Debian Jessie、またはその他のシステムベースのサービスで機能します。
CentOS 6では、service
次のコマンドを使用する必要があります。
% sudo service httpd status
httpd (pid 2164) is running...
% ps -p 2164
PID TTY TIME CMD
2164 ? 00:00:06 httpd
答え2
service httpd restart
実際には/etc/init.d/httpd restartを実行してください。 A はbash -x /etc/init.d/httpd restart
デバッグモードでスクリプトを実行します。デバッグモードでは、スクリプトのechoステートメントが実際に出力をレンダリングしているかどうかを確認できますか?さらに、ある時点でこの関数がsuccess
呼び出されます。この関数は /etc/rc.d/init.d/functions で宣言されており、引用する括弧の間に緑色のOKテキストを生成します。
しかし、/etc/init.dに出力を生成する他のスクリプトはありますか?それともhttpdのみ?