Permet de locker tout les jobs
This commit is contained in:
Alan Garcia 2013-09-12 09:28:31 +00:00
parent 4e0f0eebf7
commit 2902601157
11 changed files with 50 additions and 1 deletions

View File

@ -102,6 +102,7 @@ if(isset($L_ALTERNC_LOGS_ARCHIVE))
define('ALTERNC_LOGS', "$L_ALTERNC_LOGS");
define('ALTERNC_PANEL', "/usr/share/alternc/panel");
define('ALTERNC_LOCALES', ALTERNC_PANEL."/locales");
define('ALTERNC_LOCK_JOBS', '/var/run/alternc/jobs-lock');
/* PHPLIB inclusions : */
$root=ALTERNC_PANEL."/";

View File

@ -134,6 +134,14 @@ class m_admin {
return $obj;
}
function stop_if_jobs_locked() {
if ( file_exists(ALTERNC_LOCK_JOBS)) {
echo "There is a file ".ALTERNC_LOCK_JOBS."\n";
echo "So no jobs are allowed\n";
echo "Did you launch alternc.install ?\n";
die();
}
}
/* ----------------------------------------------------------------- */
/** Returns the known information about a hosted account

View File

@ -45,6 +45,9 @@ done
. /usr/lib/alternc/functions.sh
# Lock the jobs !
lock_jobs
# hook
run-parts --arg=startup /usr/lib/alternc/install.d
@ -573,3 +576,6 @@ echo "Compile PO files"
# hook
run-parts --arg=end /usr/lib/alternc/install.d
# Unlock jobs !
unlock_jobs

View File

@ -14,6 +14,8 @@ for CONFIG_FILE in \
. "$CONFIG_FILE"
done
stop_if_jobs_locked
# ALTERNC_LOGS is from local.sh
#Compress logs older than XX days

View File

@ -13,6 +13,8 @@ for CONFIG_FILE in \
. "$CONFIG_FILE"
done
stop_if_jobs_locked
max_process=2
tasks () {

View File

@ -14,6 +14,7 @@ for CONFIG_FILE in \
. "$CONFIG_FILE"
done
# ALTERNC_LOGS is from local.sh
stop_if_jobs_locked
# ALTERNC_LOGS is from local.sh
nice 10 -n find "$ALTERNC_LOGS" -mtime +$DAYS -delete

View File

@ -53,6 +53,8 @@ function mail_it(){
require_once("/usr/share/alternc/panel/class/config_nochk.php");
$admin->stop_if_jobs_locked();
$LOCK_FILE='/var/run/alternc/do_actions_cron.lock';
$SCRIPT='/usr/bin/php do_actions.php';
$MY_PID=getmypid();

View File

@ -32,6 +32,7 @@ mysql_query() { /usr/bin/mysql --defaults-file=/etc/alternc/my.cnf -Bs -e "$@" ;
DOMAIN_LOG_FILE="/var/log/alternc/update_domains.log"
VHOST_FILE="$VHOST_DIR/vhosts_all.conf"
VHOST_MANUALCONF="$VHOST_DIR/manual/"
LOCK_JOBS="/var/run/alternc/jobs-lock"
# Some useful miscellaneous shell functions
@ -119,3 +120,23 @@ generate_string() {
echo
}
lock_jobs() {
test -d "$(dirname "$LOCK_JOBS")" || mkdir -p "$(dirname "$LOCK_JOBS")"
touch "$LOCK_JOBS"
}
unlock_jobs() {
test -e "$LOCK_JOBS" && rm -f "$LOCK_JOBS"
}
are_jobs_locked() {
return $(test -e "$LOCK_JOBS")
}
stop_if_jobs_locked() {
are_jobs_locked || return
echo "There is a file $LOCK_JOBS"
echo "So no jobs are allowed, not even for $0"
echo "Did you launch alternc.install ?"
exit 42
}

View File

@ -30,6 +30,8 @@
*/
require_once("/usr/share/alternc/panel/class/config_nochk.php");
$admin->stop_if_jobs_locked();
# Be super user
#$mem->setid(2000);
$admin->enabled=1;

View File

@ -14,6 +14,8 @@ for CONFIG_FILE in \
. "$CONFIG_FILE"
done
stop_if_jobs_locked
# Some vars
umask 022
LOCK_FILE="/usr/share/alternc/panel/cron.lock" # FIXME doesn't seem clean to be here

View File

@ -13,6 +13,8 @@ for CONFIG_FILE in \
. "$CONFIG_FILE"
done
stop_if_jobs_locked
LOCK_FILE="/var/run/alternc/update_mails"
# ALTERNC_MAIL is from local.sh