Re: Troubles starting fetchmail from init scripts



My startup script and configuration.
I make it.

On Sat, 20 Mar 2010 06:01:19 -0400, Daniel J Walsh <dwalsh@xxxxxxxxxx>
wrote:
On 03/19/2010 08:53 PM, Jonathan Ryshpan wrote:
On Fri, 2010-03-19 at 14:39 -0700, Craig White wrote:

On Fri, 2010-03-19 at 14:08 -0700, Jonathan Ryshpan wrote:

On Fri, 2010-03-19 at 15:02 -0500, Steven Stern wrote:

On 03/19/2010 02:52 PM, Jonathan Ryshpan wrote:

I have a little script to start fetchmail, which is activated in
rc.local. It runs perfectly when started from a root login; but it
fails when started from rc.local.

Here is the info:
=========================== Scripts Start
===========================
$ more rc.local fetchmail-start
::::::::::::::
rc.local
::::::::::::::
#!/bin/sh
#
# This script will be executed *after* all the other init
scripts.
# You can put your own initialization stuff in here if you
don't
# want to do the full Sys V style init stuff.

# Fork a script that will start fetchmail for jonrysh in a
few seconds
/etc/rc.d/fetchmail-start

touch /var/lock/subsys/local
::::::::::::::
fetchmail-start
::::::::::::::
#!/bin/sh
#
# Start fetchmail for jonrysh

su jonrysh -c 'sleep 5; fetchmail'

=========================== Messages Start
===========================
Fetchmail emits the following error message and fails:
fetchmail: open: /home/jonrysh/.fetchmailrc: Permission
denied

What's happening? How can it be fixed?


The perms on /home/jonrysh/.fetchmailrc need to be 600, with
ownership
given to jonrysh:jonrysh

Everything is as you recommend. Note that the scheme works when
invoked
from a command window running a shell as root, but not from the init
script.


You could also start it without the su by adding it to your own
crontab:
@reboot sleep 30& fetchmail

Thanks, I'll try this. But I'd still like to know what's the reason
for
the permission failure when running out of rc.local . SELinux
issues?


----
this works for me (in rc.local)...

/bin/su - craig -c '/usr/bin/fetchmail'&

I tried it, and now things are worse than before. The startup script
now reads:
#!/bin/sh
#
# Start fetchmail for jonrysh

su - jonrysh -c 'sleep 5; fetchmail'

Now there's an additional error in boot.log:
...
Starting atd: [
OK ]
Error opening display!
fetchmail: open: /home/jonrysh/.fetchmailrc: Permission denied

The display did actually start OK after a short delay. It's a mystery
to me.

Thanks to all - jon





Check to see if there are SELinux AVC messages in
/var/log/audit/audit.log

# grep fetchmail /var/log/audit/audit.log

Also instead of using su, use runuser (Same thing except runuser does
not use the pam stack.)

--
Sergio Augusto Vladisauskis
-> Oportunix IT Services Brasil - ME
-> Site: http://www.oportunix.com.br
-> Fone: +55 11 4221 8163
-> Móvel: +55 11 8017 5065
-> Skype: sergiovl-work
-> Registered Linux User: 305281
#!/bin/sh
#
# chkconfig: 235 91 10
# description: Starts and stops the fetchmail daemon used to retrieve mail \
# via various protocols (such as POP3 and IMAP4).
#
# config: /etc/fetchmailrc
#
### BEGIN INIT INFO
# Provides: fetchmail
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Short-Description: The fetchmail mail retrieving daemon
# Description: Starts and stops the fetchmail daemon used to retrieve mail \
# via various protocols (such as POP3 and IMAP4).
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ $NETWORKING = "no" ] && exit 0

# Source fetchmail configuration.
if [ -s /etc/sysconfig/fetchmail ]; then
. /etc/sysconfig/fetchmail
else
echo "Configuration file not found "
exit 0
fi

CONFFILE="/etc/fetchmailrc"
HOMEDIR="/var/run/fetchmail"
PIDFILE="$HOMEDIR/.fetchmail.pid"
UIDL="$HOMEDIR/.fetchmail-UIDL-cache"
OPTIONS="-s -d ${POLL:-180} -f $CONFFILE --pidfile $PIDFILE"
RETVAL=0

# Check that fetchmailrc exists.
[ -s $CONFFILE ] || exit 0

# Check that group exists
if ! grep -qs $USER /etc/group; then
echo "Adding $USER group "
groupadd -g 200 $USER
fi

# Check that user exists.
if ! grep -qs $USER /etc/passwd; then
echo "Adding $USER user "
useradd -u 200 -g $USER -d $HOMEDIR -s /sbin/nologin $USER
fi

# create uidl cache file
if ! grep -qs idfile "$CONFFILE" && [ -d $HOMEDIR ]; then
OPTIONS="$OPTIONS -i $UIDL"
touch $UIDL
chown -h $USER $UIDL
chmod 0600 $UIDL
fi

# See how we were called.
case "$1" in
start)
if [ ! -f /var/lock/subsys/fetchmail ]; then
echo -n "Starting Fetchmail services: "
daemon --user=$USER /usr/bin/fetchmail $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/fetchmail
else
RETVAL=1
fi
;;
stop)
if [ -f /var/lock/subsys/fetchmail ]; then
action "Shutting Fetchmail services: " su -l $USER -c '/usr/bin/fetchmail -s --quit'
rm -f /var/lock/subsys/fetchmail >/dev/null 2>&1
RETVAL=$?
else
RETVAL=1
fi
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
reload)
if [ -f /var/lock/subsys/fetchmail ]; then
echo -n "Reloading fetchmailrc file: "
killproc fetchmail -HUP
RETVAL=$?
echo
else
RETVAL=1
fi
;;
status)
status fetchmail
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac

exit $RETVAL
# Customized settings for fetchmail

# Define polling interval in seconds
POLL=180

# User to start daemon
USER="fetchmail"--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines


Relevant Pages

  • RE: configuring dial-up for extreme novices (i.e. Mom).
    ... I'm going to use userland ppp and postfix. ... > your Mom a script to run which will start fetchmail, ... Then have commands in script to kill fetchmail and user ... sudo /usr/sbin/ppp -quiet -background myisp ...
    (freebsd-questions)
  • Re: strange email behavior
    ... > different computer you use fetchmail to connect to the ... > poll your POP3 mailbox manually to debug your problem. ... I saw that the script was calling /etc/fetchmailrc, ... instead of my user's mbox. ...
    (RedHat)
  • Re: strange email behavior
    ... > startup script for fetchmail that might have something to do with it. ... Since running fetchmail as root is such an unbelievably bad idea that I ... the init script that you've got. ...
    (RedHat)
  • Re: Fetchmail revisited
    ... > fetchmail supports that. ... a script written by you rather than handing it to the MTA untouched. ... AND I did help the sorting a bit because at my ISP I'm allowed to ...
    (alt.os.linux.suse)
  • Re: POP3 mail fetcher that supports unreliable connections?
    ... On the rare occasion I wasn't sure how to do something in fetchmail, ... > the local delivery. ... Everything I know about Linux is ... > special support of the local delivery configuration. ...
    (Debian-User)