#! /bin/sh
# chkconfig: 345 99 10
# description: Fedora Startup/shutdown script for MiniDLNA daemon
# If you have chkconfig, simply:
# chkconfig --add minildna
# Original author: Perry Clark
## BEGIN INIT INFO
# Provides: minidlna
# Required-Start: $local_fs $remote_fs $syslog $network
# Should-Start:
# Required-Stop: $local_fs $remote_fs $syslog $network
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Minidlna
# Description: DLNA Media Server
### END INIT INFO
## EDIT FROM HERE
# Installation details
MINIDLNA="/usr/sbin/minidlna"
ARGS="/etc/minidlna.conf"
# Where to keep a log file
MINIDLNA_LOG="/var/log/minidlna.log"
# Where the PID lives
PID_FILE="/var/run/minidlna.pid"
## STOP EDITING HERE
# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
set -e
# Only start if we can find the minidlna.conf.
test -x $MINIDLNA || exit 0
# Parse command line parameters.
case $1 in
start)
echo -n "Starting MiniDLNA: "
$MINIDLNA -f $ARGS -P $PID_FILE >> $MINIDLNA_LOG 2>&1
echo "ok"
;;
stop)
echo -n "Stopping MiniDLNA: "
for pidf in `/bin/ls $PID_FILE 2>/dev/null`; do
if [ -s $pidf ]; then
kill `cat $pidf` >/dev/null 2>&1
fi
rm -rf $PIF_FILE
done
echo "ok"
;;
restart|reload|force-reload)
echo "Restarting MiniDLNA: "
$0 stop
sleep 2
$0 start
;;
*)
# Print help
echo "Usage: /etc/init.d/minidlna {start|stop|restart| reload|force-reload}"
exit 1
;;
esac
exit 0
Полагаю, или
sleep 2
(или сколько там времени ему нужно, чтобы успеть демонизироваться и отцепиться от консоли) в конец rc.local, или man bash на предмет встроенной команды "disown -h", или nohup (явно лишнее применительно к конкретному случаю).
#!/bin/sh
# chkconfig: 345 99 10
# description: Fedora Startup/shutdown script for MiniDLNA daemon
# If you have chkconfig, simply:
# chkconfig --add minildna
# Original author: Perry Clark
## BEGIN INIT INFO
# Provides: minidlna
# Required-Start: $local_fs $remote_fs $syslog $network
# Should-Start:
# Required-Stop: $local_fs $remote_fs $syslog $network
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Minidlna
# Description: DLNA Media Server
### END INIT INFO
## EDIT FROM HERE
# Installation details
MINIDLNA="/usr/sbin/minidlna"
ARGS="-f /etc/minidlna.conf"
# Where to keep a log file
MINIDLNA_LOG="/var/log/minidlna.log"
# Where the PID lives
PID_FILE="/var/run/minidlna.pid"
## STOP EDITING HERE
# The path that is to be used for the script
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
set -e
# Only start if we can find the minidlna.conf.
test -x $MINIDLNA || exit 0
# Parse command line parameters.
case $1 in
start)
echo -n "Starting MiniDLNA: "
$MINIDLNA $ARGS -P $PID_FILE >> $MINIDLNA_LOG 2>&1
echo "ok"
;;
stop)
echo -n "Stopping MiniDLNA: "
for pidf in $(/bin/ls $PID_FILE 2>/dev/null); do
if [ -s $pidf ]; then
kill $(cat $pidf) >/dev/null 2>&1
fi
rm -rf $PIF_FILE
done
echo "ok"
;;
restart|reload|force-reload)
echo "Restarting MiniDLNA: "
$0 stop
sleep 2
$0 start
;;
*)
# Print help
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
;;
esac
exit 0
$ ls -l /etc/rc.d/rc.{minidlna,local}
-rwxr-xr-x 1 root root 345 Мар 27 21:47 /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 1605 Мар 27 21:17 /etc/rc.d/rc.minidlna
Проверьте, до rc.local вообще дело доходит? Вставьте в начало что-то вроде
echo "Starting rc.local"
при загрузке будет виден этот вывод и "Starting MiniDLNA:", а следом "ok" ?
Дело в том, что в rc.M многое запускается через "." (source), если в подобном скрипте окажется exit, на этом выполнение и закончится.
Так, что-то я не понял, у меня rc.local, почему-то был не только в /etc/rc.d, но и просто в /etc, я туда и прописывал.
Прописал в правильный rc.local, /etc/rc.d/rc.local и заработало.
Спасибо за помощь.
4.1.3 The /etc/rc.d Directory 4.1.3.5 Other Files
...
rc.local
Contains any specific startup commands for your system. This is empty after a fresh install, as it is reserved for local administrators. This script is run after all other initialization has taken place.
Посему, откуда у вас взялся /etc/rc.local не могу даже и предположить. Разве что с софтом каким пришёл ;-) или бэкап.