From 0a3abb363e86b7b019939b7a1f6fadb0c71bb4ce Mon Sep 17 00:00:00 2001 From: nicoschtein Date: Wed, 31 Jul 2013 03:01:33 -0300 Subject: [PATCH 1/6] Added Prefix Option to run-crons.sh PID File. Added configuration option 'PIDPREFIX' to add to PIDFILE name, so it will be unique in a multipool server. --- cronjobs/run-crons.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cronjobs/run-crons.sh b/cronjobs/run-crons.sh index 4340680d..715ecac4 100755 --- a/cronjobs/run-crons.sh +++ b/cronjobs/run-crons.sh @@ -15,6 +15,10 @@ CRONS="findblock.php proportional_payout.php pplns_payout.php pps_payout.php blo # Output additional runtime information VERBOSE="0" +# Prefix to add to PIDFILE name, so it will be unique in a multipool server. +# Can be left empty or set Eg. PIDPREFIX="LTC" / PIDPREFIX="DMD" +PIDPREFIX="" + ################################################################ # # # You probably don't need to change anything beyond this point # @@ -25,7 +29,7 @@ VERBOSE="0" ME=$( basename $0 ) # Path to PID file, needs to be writable by user running this -PIDFILE="/tmp/$ME.pid" +PIDFILE="/tmp/$PIDPREFIX$ME.pid" # Overwrite some settings via command line arguments while getopts "hvp:" opt; do From 4c8295edc22488f1d7b03a092eb0d94c7ca59f3e Mon Sep 17 00:00:00 2001 From: Nicolas Schteinschraber Date: Wed, 31 Jul 2013 04:28:15 -0300 Subject: [PATCH 2/6] Added ability to pass prefix as an argument when calling script. --- cronjobs/run-crons.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cronjobs/run-crons.sh b/cronjobs/run-crons.sh index 715ecac4..041929cc 100755 --- a/cronjobs/run-crons.sh +++ b/cronjobs/run-crons.sh @@ -16,8 +16,10 @@ CRONS="findblock.php proportional_payout.php pplns_payout.php pps_payout.php blo VERBOSE="0" # Prefix to add to PIDFILE name, so it will be unique in a multipool server. -# Can be left empty or set Eg. PIDPREFIX="LTC" / PIDPREFIX="DMD" -PIDPREFIX="" +# Can be passed as an argument when calling the script "./run-crons.sh prefix" +# Eg. "./run-crons.sh ltc" / "./run-crons.sh dmd" +# or can be harcoded Eg. PIDPREFIX="LTC" / PIDPREFIX="DMD" +PIDPREFIX="$1" ################################################################ # # From 87315238da0852fd52394623939a4cad9ee0a601 Mon Sep 17 00:00:00 2001 From: nicoschtein Date: Wed, 31 Jul 2013 06:35:04 -0300 Subject: [PATCH 3/6] Properly overwrite PIDPREFIX via command line argument --- cronjobs/run-crons.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/cronjobs/run-crons.sh b/cronjobs/run-crons.sh index 041929cc..6db5ee85 100755 --- a/cronjobs/run-crons.sh +++ b/cronjobs/run-crons.sh @@ -16,10 +16,7 @@ CRONS="findblock.php proportional_payout.php pplns_payout.php pps_payout.php blo VERBOSE="0" # Prefix to add to PIDFILE name, so it will be unique in a multipool server. -# Can be passed as an argument when calling the script "./run-crons.sh prefix" -# Eg. "./run-crons.sh ltc" / "./run-crons.sh dmd" -# or can be harcoded Eg. PIDPREFIX="LTC" / PIDPREFIX="DMD" -PIDPREFIX="$1" +PIDPREFIX="" ################################################################ # # @@ -30,14 +27,11 @@ PIDPREFIX="$1" # My own name ME=$( basename $0 ) -# Path to PID file, needs to be writable by user running this -PIDFILE="/tmp/$PIDPREFIX$ME.pid" - # Overwrite some settings via command line arguments -while getopts "hvp:" opt; do +while getopts "hvp:x:" opt; do case "$opt" in h|\?) - echo "Usage: $0 [-v] [-p PHP_BINARY]"; + echo "Usage: $0 [-v] [-p PHP_BINARY] [-x PIDPREFIX]"; exit 0 ;; v) VERBOSE=1 ;; @@ -46,9 +40,17 @@ while getopts "hvp:" opt; do echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; + x) PIDPREFIX=$OPTARG ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; esac done +# Path to PID file, needs to be writable by user running this +PIDFILE="/tmp/$PIDPREFIX$ME.pid" + # Find scripts path if [[ -L $0 ]]; then CRONHOME=$( dirname $( readlink $0 ) ) From fee9d821928fa5b7c20307539a41aa29bc47dbc3 Mon Sep 17 00:00:00 2001 From: nicoschtein Date: Thu, 1 Aug 2013 00:11:21 -0300 Subject: [PATCH 4/6] Added curly brackets to arg vars and removed extra empty arg catcher. --- cronjobs/run-crons.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cronjobs/run-crons.sh b/cronjobs/run-crons.sh index 6db5ee85..ae211091 100755 --- a/cronjobs/run-crons.sh +++ b/cronjobs/run-crons.sh @@ -36,10 +36,6 @@ while getopts "hvp:x:" opt; do ;; v) VERBOSE=1 ;; p) PHP_BIN=$OPTARG ;; - :) - echo "Option -$OPTARG requires an argument." >&2 - exit 1 - ;; x) PIDPREFIX=$OPTARG ;; :) echo "Option -$OPTARG requires an argument." >&2 @@ -49,7 +45,7 @@ while getopts "hvp:x:" opt; do done # Path to PID file, needs to be writable by user running this -PIDFILE="/tmp/$PIDPREFIX$ME.pid" +PIDFILE="/tmp/${PIDPREFIX}${ME}.pid" # Find scripts path if [[ -L $0 ]]; then From 038ec39e5585cc14b6414c1dc029ce4aad8ae318 Mon Sep 17 00:00:00 2001 From: Nicolas Schteinschraber Date: Thu, 1 Aug 2013 02:55:33 -0300 Subject: [PATCH 5/6] Added BASEPATH and SUBFOLDER configs for PIDFILE Checks if the path exists, if it does not, it is created, if there is an error a message is printed with the problematic path. --- cronjobs/run-crons.sh | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/cronjobs/run-crons.sh b/cronjobs/run-crons.sh index ae211091..89d265d4 100755 --- a/cronjobs/run-crons.sh +++ b/cronjobs/run-crons.sh @@ -15,8 +15,13 @@ CRONS="findblock.php proportional_payout.php pplns_payout.php pps_payout.php blo # Output additional runtime information VERBOSE="0" -# Prefix to add to PIDFILE name, so it will be unique in a multipool server. -PIDPREFIX="" +# Base path for PIDFILE, (full path). +BASEPATH="/tmp" + +# Subfolder for PIDFILE, so it's path will be unique in a multipool server. +# Path relative to BASEPATH. +# Eg. SUBFOLDER="LTC" +SUBFOLDER="" ################################################################ # # @@ -28,15 +33,15 @@ PIDPREFIX="" ME=$( basename $0 ) # Overwrite some settings via command line arguments -while getopts "hvp:x:" opt; do +while getopts "hvp:d:" opt; do case "$opt" in h|\?) - echo "Usage: $0 [-v] [-p PHP_BINARY] [-x PIDPREFIX]"; + echo "Usage: $0 [-v] [-p PHP_BINARY] [-d SUBFOLDER]"; exit 0 ;; v) VERBOSE=1 ;; p) PHP_BIN=$OPTARG ;; - x) PIDPREFIX=$OPTARG ;; + d) SUBFOLDER=$OPTARG ;; :) echo "Option -$OPTARG requires an argument." >&2 exit 1 @@ -45,7 +50,16 @@ while getopts "hvp:x:" opt; do done # Path to PID file, needs to be writable by user running this -PIDFILE="/tmp/${PIDPREFIX}${ME}.pid" +PIDFILE="${BASEPATH}/${SUBFOLDER}/${ME}.pid" +# Clean PIDFILE path +PIDFILE=$(readlink -m "$PIDFILE") + +# Create folders recursively if necessary +if + !(mkdir -p $( dirname $PIDFILE) ) +then + echo "Error creating PIDFILE path: $( dirname $PIDFILE )" +fi # Find scripts path if [[ -L $0 ]]; then From a84c91f886560ed42924133e9bbbf60528dc2c55 Mon Sep 17 00:00:00 2001 From: nicoschtein Date: Thu, 1 Aug 2013 04:04:45 -0300 Subject: [PATCH 6/6] Fix PIDFILE folder check --- cronjobs/run-crons.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cronjobs/run-crons.sh b/cronjobs/run-crons.sh index 89d265d4..193e0f7e 100755 --- a/cronjobs/run-crons.sh +++ b/cronjobs/run-crons.sh @@ -55,10 +55,9 @@ PIDFILE="${BASEPATH}/${SUBFOLDER}/${ME}.pid" PIDFILE=$(readlink -m "$PIDFILE") # Create folders recursively if necessary -if - !(mkdir -p $( dirname $PIDFILE) ) -then +if ! $(mkdir -p $( dirname $PIDFILE)); then echo "Error creating PIDFILE path: $( dirname $PIDFILE )" + exit 1 fi # Find scripts path