监控正在运行的Apache(CSH)
概述
我想创建一个脚本来监控CSH中Apache是否已经启动。
预先准备任务
需要在树莓派(Linux)上安装以下软件包。
■软件包
· csh安装命令
sudo apt-get install csh -y
・Apache安装命令
使用sudo apt install apache2 -y
■ Apache的启动命令
您可以使用以下命令进行启动和停止。
sudo apachectl停止
sudo apachectl启动
sudo apachectl重新启动
sudo systemctl启动apache2
sudo systemctl停止apache2
sudo systemctl重新启动apache2
检查Apache进程的命令是:
ps aux|grep apache|grep root
※可以使用grep apache或grep httpd进行确认。
CSH源代码
将以下源代码保存到run.sh。
#!/bin/csh -f
# APACHEの起動されている内容をPSコマンドから確認します。
set PSRUN=`ps -ef | grep apache|grep root > ./PS`
# PS結果からAPACHEの文字列を取得するための処理です。
set PSX = `cat ./PS | awk 'BEGIN{FS="sbin/"}{print $2}'|awk 'BEGIN{FS=" -k"}{print $1}'`
# PSの内容を出力します。起動されていない場合は、非表示になります。
cat ./PS
# 作業ファイルを削除します。
rm -rf ./PS
# apache2の文字列の比較です。OSによってhttpdの場合もあります。
if ( "$PSX" == "apache2" ) then
echo "APACHEが起動されている。"
endif
if ( "$PSX" == "" ) then
echo "APACHEが起動されていない。"
sudo systemctl start apache2
endif
执行结果
使用以下命令执行上述的CSH文件。
# `Apacheが軌道中の場合、表示されるメッセージ
pi@raspberrypi:~/work/php $ csh run.sh
root 2700 1 0 23:30 ? 00:00:00 /usr/sbin/apache2 -k start
APACHEが起動されている。
# Apacheの停止コマンドを実行
pi@raspberrypi:~/work/php $ sudo systemctl stop apache2
# Apacheが起動されていない
pi@raspberrypi:~/work/php $ ps aux |grep apache
pi 3002 0.0 0.1 5972 568 pts/1 S+ 23:43 0:00 grep --color=auto apache
# Apacheが起動されていない場合、表示されるメッセージ
pi@raspberrypi:~/work/php $ csh run.sh
APACHEが起動されていない。
※この後で「sudo systemctl start apache2」コマンドで起動される
# Apacheの起動されていることを確認コマンド
pi@raspberrypi:~/work/php $ ps aux|grep apache
root 3025 0.5 3.4 192112 15128 ? Ss 23:46 0:00 /usr/sbin/apache2 -k start
www-data 3029 0.0 1.0 192144 4680 ? S 23:46 0:00 /usr/sbin/apache2 -k start
www-data 3030 0.0 1.0 192144 4680 ? S 23:46 0:00 /usr/sbin/apache2 -k start
www-data 3031 0.0 1.0 192144 4680 ? S 23:46 0:00 /usr/sbin/apache2 -k start
www-data 3032 0.0 1.0 192144 4680 ? S 23:46 0:00 /usr/sbin/apache2 -k start
www-data 3033 0.0 1.0 192144 4680 ? S 23:46 0:00 /usr/sbin/apache2 -k start
pi 3035 0.0 0.1 5972 592 pts/1 S+ 23:46 0:00 grep --color=auto apache
结束
创建监视Apache是否启动的脚本的原因是,当Apache停止时可以自动启动它。
如果存在Apache配置文件的问题,它可能无法正常启动。
以下是脚本,您只需将其设置为变量并使用即可,但由于在控制台上无法正常运行,所以更改为文件输出。
设置PSRUN=ps -ef | grep apache|grep root > ./PS时,出现以下错误消息并中断处理。
^^;;
pi@raspberrypi:~/work/php $ csh run.sh
echo: No match.
谢谢您一直阅读到这里。