pds wrote:
On Fri, 30 Jan 2009 06:18:20 +0100
Kevin Kofler <kevin.kofler(a)chello.at> wrote:
> This should work:
>
> cat >>/etc/rc.d/rc.local <<EOF
> for i in /home/*/.rc.local ; do
> user=${i#/home/}
> user=${user%/.rc.local}
> su $user -c $i
> done
> EOF
>
> Kevin Kofler
>
This should work as long as all the prerequisite services have been
started, such as mounting the file system.
Considering when rc.local runs, all the other services should have
been run. From the rc.local file itself:
# 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.
One other requirement is all users accounts are in /home.
You could try something like this (untested):
RClocal=".rc.local"
USERS=`awk -F: '{print $1}' /etc/passwd`
for i in $USERS
do
HOME=`grep \^$i: /etc/passwd | awk -F: '{print $6}'`
if [ -r $HOME/$RClocal ]; then
su $USER -c $HOME/$RClocal &
fi
done
You could fancy it up a bit by only using UIDs 500 or greater,
depending on what you want.
Mikkel
--
Do not meddle in the affairs of dragons,
for thou art crunchy and taste good with Ketchup!