Проверять апачские модули, установленные в Вашей системе:
apache2ctl -M or apachectl -M
Чтобы проверить, установлен ли OpenSSL в Вашей системе:
Для дистрибутивов GNU/Linux, которые используют RPM-пакеты:
rpm -qa | grep -i openssl
Для дистрибутивов GNU/Linux, которые используют deb пакеты:
dpkg -l | grep -i openssl
Я предложу Вас другой путь к присмотру за детьми провального сервиса: psmon. Это - маленький демон, записанный в Perl, имея Apache стильный файл конфигурации. Это позволяет Вам определять весь вид условий от просто проверки, что процесс осознает перезапуск его, если процесс использует слишком много RAM/ЦП. Перезапуск произойдет путь раньше, чем после потенциальной 10-минутной задержки, которую Вы имеете со своим текущим кроном.
Это может также отправить Вам e-mail/log события, которые это выполнило, таким образом, Вы видите, как часто процесс перезапущен, если Вы так хотите.
Ubuntu использует Выскочку для управления демонами. Посмотрите man 5 init
. Вот общественный HowTo и статья в Википедии.
Посмотрите на некоторые существующие файлы в /etc/init.d
как модели для Вашего собственного liveinstance.conf
файл. Обратите особое внимание на необходимый раздел комментария в начале файлов.
Что касается того, почему Ваш сценарий не работает a cron
задание, Khai корректен, что это обычно - различие в среде. Необходимо удостовериться, что Вы устанавливаете $PATH
включать любые каталоги, что Вы требуете, чтобы не были в значении по умолчанию $PATH
или использование полностью указало каталоги к сценариям и утилитам, которые Вы используете.
Измените строку в crontab, чтобы она выглядела так (или в любой другой оболочке, в которой вы написали скрипт):
*/10 * * * * /bin/bash /var/foo/live/foo25/bin/liveinstance1 start >> /dev/null 2>&1
Также вам нужно добавить свой путь к crontab, запустите этот скрипт:
#!/bin/bash
#
# Date: August 22, 2013
# Author: Steve Stonebraker
# File: add_current_shell_and_path_to_crontab.sh
# Description: Add current user's shell and path to crontab
# Source: http://brakertech.com/add-current-path-to-crontab
# Github: https://github.com/ssstonebraker/braker-scripts/blob/master/working-scripts/add_current_shell_and_path_to_crontab.sh
# function that is called when the script exits (cleans up our tmp.cron file)
function finish { [ -e "tmp.cron" ] && rm tmp.cron; }
#whenver the script exits call the function "finish"
trap finish EXIT
########################################
# pretty printing functions
function print_status { echo -e "\x1B[01;34m[*]\x1B[0m $1"; }
function print_good { echo -e "\x1B[01;32m[*]\x1B[0m $1"; }
function print_error { echo -e "\x1B[01;31m[*]\x1B[0m $1"; }
function print_notification { echo -e "\x1B[01;33m[*]\x1B[0m $1"; }
function printline {
hr=-------------------------------------------------------------------------------------------------------------------------------
printf '%s\n' "${hr:0:${COLUMNS:-$(tput cols)}}"
}
####################################
# print message and exit program
function die { print_error "$1"; exit 1; }
####################################
# user must have at least one job in their crontab
function require_gt1_user_crontab_job {
crontab -l &> /dev/null
[ $? -ne 0 ] && die "Script requires you have at least one user crontab job!"
}
####################################
# Add current shell and path to user's crontab
function add_shell_path_to_crontab {
#print info about what's being added
print_notification "Current SHELL: ${SHELL}"
print_notification "Current PATH: ${PATH}"
#Add current shell and path to crontab
print_status "Adding current SHELL and PATH to crontab \nold crontab:"
printline; crontab -l; printline
#keep old comments but start new crontab file
crontab -l | grep "^#" > tmp.cron
#Add our current shell and path to the new crontab file
echo -e "SHELL=${SHELL}\nPATH=${PATH}\n" >> tmp.cron
#Add old crontab entries but ignore comments or any shell or path statements
crontab -l | grep -v "^#" | grep -v "SHELL" | grep -v "PATH" >> tmp.cron
#load up the new crontab we just created
crontab tmp.cron
#Display new crontab
print_good "New crontab:"
printline; crontab -l; printline
}
require_gt1_user_crontab_job
add_shell_path_to_crontab