-1

Интересно, можно ли проверить, работает ли apache2. Если он не запущен, я хочу выполнить его с помощью шеллскрипта

В настоящее время я добавил функцию, которую я назвал run_apache, которая просто идет в каталог, где запускается apache2. Я добавил эту функцию в мой файл .bashrc . Однако он будет выполняться каждый раз, когда я открываю новую оболочку, чего я не хочу, если apache2 еще не запущен.

3 ответа3

3

Вы можете легко получить статус apache2 , запустив

/etc/init.d/apache2 status

Это выведет один из них:

Apache2 is NOT running.
Apache2 is running (pid 10281).

Также бывает, что вы получаете правильный статус возврата, который вы можете использовать в скрипте оболочки (и отбрасываете его обычный вывод с помощью > /dev/null):

if /etc/init.d/apache2 status > /dev/null;
then echo "Apache already running";
else echo "Apache not running";
fi

Я должен добавить, что от попыток запустить Apache, когда он уже работает, нет никакого вреда. Итак, /etc/init.d/apache2 start просто скажет:

Starting web server: apache2httpd (pid 10281) already running
0

Вы можете просто добавить в файл /etc/rc.local вашей системы команду запуска Apache, которая будет запускаться в самом конце процесса загрузки.

Там не должно быть необходимости проверять, работает ли он тогда, потому что теоретически, он должен продолжать работать.

0

Ну, я знаю, что уже слишком поздно, но кому-то это может понадобиться. Я использую Cygwin с consoleZ.

  1. Во- первых, открыть .bash_aliases файл и добавьте эти строки alias apacheup='cygstart --hide /g/xampp/apache_start.bat' alias apachedown='cygstart --hide /g/xampp/apache_stop.bat' alias mysqlup='cygstart --hide /g/xampp/mysql_start.bat' alias mysqldown='cygstart --hide /g/xampp/mysql_stop.bat' alias webup='apacheup && mysqlup' alias webdown='apachedown && mysqldown' alias webrestart='apachedown && mysqldown && apacheup && mysqlup'
  2. Во-вторых, в .bash_functions скопируйте эту функцию webstat() { red='\e[0;41m' green='\e[0;42m' NC='\e[0m' # No Color if [[ -n $(ps aux -W | grep httpd.exe) ]]; then echo -e "Apache:\t"${green}" RUNNING "${NC} else echo -e "Apache:\t"${red}" STOPPED "${NC} fi if [[ -n $(ps aux -W | grep mysqld.exe) ]]; then echo -e "MySQL:\t"${green}" RUNNING "${NC} else echo -e "MySQL:\t"${red}" STOPPED "${NC} fi }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .