/etc/init.d/fetchmail is in fetchmail 6.3.26-3.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | #!/bin/sh
#
# Fetchmail init script
# Latest change: Do Aug 30 16:04:39 CEST 2012
#
### BEGIN INIT INFO
# Provides: fetchmail
# Required-Start: $network $local_fs $remote_fs $syslog
# Required-Stop: $remote_fs
# Should-Start: $mail-transport-agent postfix exim4 $named
# Should-Stop: $mail-transport-agent postfix exim4
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: init-Script for system wide fetchmail daemon
# Description: Enable service provided by fetchmail in daemon mode
### END INIT INFO
#
# A fetchmailrc file containg hosts and passwords for all local users should be
# placed in /etc/fetchmailrc. Remember to make the /etc/fetchmailrc mode 600
# to avoid disclosing the users' passwords.
#
# This script will NOT start or stop fetchmail if the /etc/fetchmailrc file
# does not exist or if START_DAEMON in /etc/default/fetchmail is set to no.
set -e
# Defaults
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/fetchmail
USER=fetchmail
OPTIONS=""
CONFFILE="/etc/fetchmailrc"
PIDFILE="/var/run/fetchmail/fetchmail.pid"
UIDL="/var/lib/fetchmail/.fetchmail-UIDL-cache"
START_DAEMON="no"
. /lib/lsb/init-functions
if [ -r /etc/default/fetchmail ]; then
. /etc/default/fetchmail
fi
OPTIONS="$OPTIONS -f $CONFFILE --pidfile $PIDFILE"
if [ ! "x$START_DAEMON" = "xyes" -a ! "$1" = "status" ]; then
log_action_msg "Not starting fetchmail daemon, disabled via /etc/default/fetchmail"
exit 0
fi
if [ ! -e $CONFFILE ]; then
log_failure_msg "$CONFFILE not found."
log_failure_msg "can not start fetchmail daemon... consider disabling the script"
exit 6
fi
test -f $DAEMON || exit 0
if [ "$1" = "start" ]; then
if [ ! -r $CONFFILE ] ; then
log_failure_msg "$CONFFILE found but not readable."
exit 0
fi
fi
# sanity checks (saves on MY sanity :-P )
if ! id $USER >/dev/null 2>&1; then
if [ "$USER" = "fetchmail" ]; then
# The fetchmail user might have been removed when the fetchmail-common
# package is purged. We have to re-add it here so the system-wide
# daemon will run.
adduser --system --ingroup nogroup --home /var/lib/fetchmail \
--shell /bin/sh --disabled-password fetchmail >/dev/null 2>&1 || true
# work around possible adduser bug, see #119366
[ -d /var/lib/fetchmail ] || mkdir -p /var/lib/fetchmail
chmod 700 /var/lib/fetchmail
chown -h -R fetchmail:nogroup /var/lib/fetchmail
else
log_failure_msg "$0: $USER user does not exist!"
exit 1
fi
fi
# add daemon option if user hasn't already specified it
if ! grep -qs '^[[:space:]]*set[[:space:]]\+daemon[[:space:]]' "$CONFFILE"; then
# Make sure user did not use -d on /etc/default/fetchmail
if ! grep -qs -e '^[[:space:]]*OPTIONS=.*-d[[:space:]]*[[:digit:]]\+' "/etc/default/fetchmail"; then
OPTIONS="$OPTIONS -d 300"
fi
fi
# add syslog option unless user specified "set no syslog".
if ! grep -qs '^[[:space:]]*set[[:space:]]\+no[[:space:]]\+syslog' "$CONFFILE"; then
OPTIONS="$OPTIONS --syslog"
fi
# support for ephemeral /var/run
if [ "${PIDFILE%/*}" = "/var/run/fetchmail" ] && [ ! -d ${PIDFILE%/*} ] && [ "$1" != "status" ]; then
mkdir /var/run/fetchmail
chown -h $USER:nogroup /var/run/fetchmail
chmod 700 /var/run/fetchmail
fi
# sanity check
#if [ ! -d ${PIDFILE%/*} ]; then
# log_failure_msg "$0: directory ${PIDFILE%/*} does not exist!"
# exit 1
#fi
# If the user is going to use a UIDL cache, try to find a better place for the
# UIDL cache than root's homedir. Also create $UIDL if it doesn't exist,
# because the daemon won't have the permission.
# THIS IS NOT NEEDED SINCE 6.3.x
#if ! grep -qs idfile "$CONFFILE" && [ -d /var/lib/fetchmail ]; then
# OPTIONS="$OPTIONS -i $UIDL"
# touch $UIDL
# chown -h $USER $UIDL
# chmod 0600 $UIDL
#fi
# Makes sure certain files/directories have the proper owner
if [ -f $CONFFILE -a "`stat -c '%U %a' $CONFFILE 2>/dev/null`" != "$USER 600" ]; then
chown -h $USER $CONFFILE
chmod -f 0600 $CONFFILE
fi
case "$1" in
start)
if test -e $PIDFILE ; then
pid=`cat $PIDFILE | sed -e 's/\s.*//'|head -n1`
PIDDIR=/proc/$pid
if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
log_failure_msg "fetchmail already started; not starting."
exit 0
else
log_warning_msg "Removing stale PID file $PIDFILE."
rm -f $PIDFILE
fi
fi
log_begin_msg "Starting mail retriever agent:" "fetchmail"
if start-stop-daemon -S -o -q -p $PIDFILE -x $DAEMON -u $USER -c $USER -- $OPTIONS; then
log_end_msg 0
else
log_end_msg 1
exit 1
fi
;;
status)
status_of_proc $DAEMON fetchmail -p $PIDFILE
;;
stop)
if ! test -e $PIDFILE ; then
log_failure_msg "Pidfile not found! Is fetchmail running?"
exit 0
fi
log_begin_msg "Stopping mail retriever agent:" "fetchmail"
if start-stop-daemon -K -o -q -p $PIDFILE -x $DAEMON -u $USER; then
log_end_msg 0
else
log_end_msg 1
exit 1
fi
;;
force-reload|restart)
log_begin_msg "Restarting mail retriever agent:" "fetchmail"
if ! start-stop-daemon -K -o -q -p $PIDFILE -x $DAEMON -u $USER; then
log_end_msg 1
exit 1
fi
sleep 1
if start-stop-daemon -S -q -p $PIDFILE -x $DAEMON -u $USER -c $USER -- $OPTIONS; then
log_end_msg 0
else
log_end_msg 1
exit 1
fi
;;
try-restart)
if test -e $PIDFILE ; then
pid=`cat $PIDFILE | sed -e 's/\s.*//'|head -n1`
PIDDIR=/proc/$pid
if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
$0 restart
exit 0
fi
fi
test -f /etc/rc`/sbin/runlevel | cut -d' ' -f2`.d/S*fetchmail* && $0 start
;;
awaken)
log_begin_msg "Awakening mail retriever agent:" "fetchmail"
if [ -s $PIDFILE ]; then
start-stop-daemon -K -s 10 -q -p $PIDFILE -x $DAEMON
log_end_msg 0
exit 0
else
log_end_msg 1
exit 1
fi
;;
debug-run)
echo "$0: Initiating debug run of system-wide fetchmail service..." 1>&2
echo "$0: script will be run in debug mode, all output to forced to" 1>&2
echo "$0: stdout. This is not enough to debug failures that only" 1>&2
echo "$0: happen in daemon mode." 1>&2
echo "$0: You might want to direct output to a file, and tail -f it." 1>&2
if [ "$2" = "strace" ]; then
echo "$0: (running debug mode under strace. See strace(1) for options)" 1>&2
echo "$0: WARNING: strace output may contain security-sensitive info, such as" 1>&2
echo "$0: passwords; please clobber them before sending the strace file to a" 1>&2
echo "$0: public bug tracking system, such as Debian's." 1>&2
fi
echo "$0: Stopping the service..." 1>&2
"$0" stop
echo "$0: exit status of service stop was: $?"
echo "$0: RUNUSER is $USER"
echo "$0: OPTIONS would be $OPTIONS"
echo "$0: Starting service in nodetach mode, hit ^C (SIGINT/intr) to finish run..." 1>&2
if [ "$2" = "strace" ] ; then
shift
shift
[ $# -ne 0 ] && echo "$0: (strace options are: -tt $@)" 1>&2
su -s /bin/sh -c "/usr/bin/strace -tt $* $DAEMON $OPTIONS --nosyslog --nodetach -v -v" $USER <&- 2>&1
else
su -s /bin/sh -c "$DAEMON $OPTIONS --nosyslog --nodetach -v -v" $USER <&- 2>&1
fi
echo "$0: End of service run. Exit status was: $?"
exit 0
;;
*)
log_warning_msg "Usage: /etc/init.d/fetchmail {start|stop|restart|force-reload|awaken|debug-run}"
log_warning_msg " start - starts system-wide fetchmail service"
log_warning_msg " stop - stops system-wide fetchmail service"
log_warning_msg " restart, force-reload - starts a new system-wide fetchmail service"
log_warning_msg " awaken - tell system-wide fetchmail to start a poll cycle immediately"
log_warning_msg " debug-run [strace [strace options...]] - start a debug run of the"
log_warning_msg " system-wide fetchmail service, optionally running it under strace"
exit 1
;;
esac
exit 0
# vim:ts=4:sw=4:
|