diff options
Diffstat (limited to 'sys-process')
-rw-r--r-- | sys-process/fcron/fcron-3.2.1-r1.ebuild (renamed from sys-process/fcron/fcron-3.2.1.ebuild) | 0 | ||||
-rw-r--r-- | sys-process/fcron/files/fcron.init.4 | 36 |
2 files changed, 31 insertions, 5 deletions
diff --git a/sys-process/fcron/fcron-3.2.1.ebuild b/sys-process/fcron/fcron-3.2.1-r1.ebuild index f3988dcb1adc..f3988dcb1adc 100644 --- a/sys-process/fcron/fcron-3.2.1.ebuild +++ b/sys-process/fcron/fcron-3.2.1-r1.ebuild diff --git a/sys-process/fcron/files/fcron.init.4 b/sys-process/fcron/files/fcron.init.4 index e2441ee13bca..25fafc16ec25 100644 --- a/sys-process/fcron/files/fcron.init.4 +++ b/sys-process/fcron/files/fcron.init.4 @@ -5,7 +5,7 @@ FCRON_INSTANCE="${SVCNAME##*.}" -if [[ -n "${FCRON_INSTANCE}" && "${SVCNAME}" != "fcron" ]]; then +if [ -n "${FCRON_INSTANCE}" -a "${SVCNAME}" != "fcron" ]; then FCRON_CONFIGFILE="/etc/fcron/fcron.${FCRON_INSTANCE}.conf" else FCRON_CONFIGFILE="/etc/fcron/fcron.conf" @@ -20,11 +20,11 @@ getconfig() { value="$(service_get_value ${key})" fi - if [[ -z "${value}" && -r "${FCRON_CONFIGFILE}" ]]; then + if [ -z "${value}" -a -r "${FCRON_CONFIGFILE}" ]; then value="$(sed -n -e 's:^'"${key}"'[ \t]*=[ \t]*::p' "${FCRON_CONFIGFILE}")" fi - if [[ -z "${value}" ]]; then + if [ -z "${value}" ]; then # Value not explicitly set in the configfile or configfile does not exist # or is not readable echo "${value_default}" @@ -42,7 +42,7 @@ depend() { need hostname # provide the cron service if we are the main instance - [[ "${SVCNAME}" == "fcron" ]] && provide cron + [ "${SVCNAME}" = "fcron" ] && provide cron } command="/usr/libexec/fcron" @@ -50,6 +50,7 @@ command_args="-c \"${FCRON_CONFIGFILE}\"" start_stop_daemon_args=${FCRON_SSDARGS:-"--wait 1000"} pidfile="$(getconfig pidfile /run/fcron.pid)" fcrontabs="$(getconfig fcrontabs /var/spool/fcron)" +fifofile="$(getconfig fifofile /run/fcron.fifo)" required_files="${FCRON_CONFIGFILE}" extra_started_commands="reload" @@ -59,9 +60,33 @@ reload() { } start_pre() { + if [ "${SVCNAME}" != "fcron" ]; then + local _has_invalid_instance_cfg=0 + + if [ "${pidfile}" = "/run/fcron.pid" ]; then + eerror "You cannot use the same pidfile like the default instance!" + eerror "Please adjust your 'pidfile' setting in '${FCRON_CONFIGFILE}'." + _has_invalid_instance_cfg=1 + fi + + if [ "${fcrontabs}" = "/var/spool/fcron" ]; then + eerror "You cannot use the same fcrontabs location like the default instance!" + eerror "Please adjust your 'fcrontabs' setting in '${FCRON_CONFIGFILE}'." + _has_invalid_instance_cfg=1 + fi + + if [ "${fifofile}" = "/run/fcron.fifo" ]; then + eerror "You cannot use the same fifo file like the default instance!" + eerror "Please adjust your 'fifofile' setting in '${FCRON_CONFIGFILE}'." + _has_invalid_instance_cfg=1 + fi + + [ ${_has_invalid_instance_cfg} -ne 0 ] && return 1 + fi + checkpath --file "${FCRON_CONFIGFILE}" --owner root:fcron --mode 0640 - if [[ ! -d "${fcrontabs}" ]]; then + if [ ! -d "${fcrontabs}" ]; then ebegin "Creating missing spooldir '${fcrontabs}'" ${command} --newspooldir "${fcrontabs}" eend $? @@ -70,4 +95,5 @@ start_pre() { start_post() { service_set_value fcrontabs "${fcrontabs}" + service_set_value fifofile "${fifofile}" } |