View Full Version : Eseguire uno script in Bash come servizio
borexino
25-09-2007, 19:54
Ciao a tutti!:)
Ho la necessità di eseguire uno script in bash come servizio per poterlo riavviare e fermare a mio piacimento!
c'è qualche soluzione in merito?
:muro:
grazie a tutti!
Psycotic
26-09-2007, 09:20
non l'hai scritto tu lo script in bash vero?
Dovresti implementargli lo start e stop all'interno dello script.. Oppure creare un nuovo script che faccia questo lavoro.
Ma dovresti dare piu' dettagli.. tipo come fai partire adesso lo script e come lo fermi adesso.
jventure
26-09-2007, 09:38
i demoni normalmente sono script bash che interpretano i parametri start|stop|restart
e attraverso uno case esac istruiscono start-stop-daemon per avviare il programma vero e proprio a seconda della configurazione.
ora non so cosa faccia il tuo script ma normalmente per terminare un programma è necessario conoscere il suo pid.
un possibile init potrebbe essere questo:
#!/bin/sh
# init script per MIOSCRIPT
# creato in data 26 settembre 2007
# configurazione
# script da avviare
SCRIPT="/usr/share/mioscript/script.sh"
# descrizione dello script
DESC="descrizione di mioscript.sh"
# log dello script
LOGDIR="/var/log/mioscript"
ERRORLOG="script-error.log"
LOG="script.log"
# pidfile
PIDFILE = "/var/run/script.pid"
# parametri script
SCRIPTOPTION="parametri da passare allo script"
# parametri demone
# - USER = utente proprietario che avvia lo script
# - GROUP = gruppo proprietario che avvia los cript
USER="utente"
GROUP="group"
DAEMONOPTION="--chuid $USER:$GROUP --group $GROUP --umask 0022 \
--nicelevel 0 --user $USER"
# controllo che lo script esista
test -e $SCRIPT || exit 0
# controllo che esista la directory di log
if [ ! -d $LOGDIR ]; then
mkdir -m 755 $LOGDIR
fi
case "$1" in
start)
echo -n "Starting $DESC "
start-stop-daemon --start $DAEMONOPTION --exec $SCRIPT --pidfile \
$PIDFILE --make-pidfile --background -- $SCRIPTOPTION \
> $LOGDIR/LOG 2> $LOGDIR/$ERRORLOG
echo "."
;;
stop)
echo -n "Stopping $DESC"
start-stop-daemon --stop --oknodo --pidfile $PIDFILE
echo "."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usa: $0 {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
modifica a tuo piacimento :)
questo lo crei in /etc/init.d poi crei un link al runlevel per caricarlo all'avvio:
ln -s /etc/init.d/startscript.sh /etc/rc2.d/S99startscript
borexino
26-09-2007, 11:23
i demoni normalmente sono script bash che interpretano i parametri start|stop|restart
e attraverso uno case esac istruiscono start-stop-daemon per avviare il programma vero e proprio a seconda della configurazione.
ora non so cosa faccia il tuo script ma normalmente per terminare un programma è necessario conoscere il suo pid.
un possibile init potrebbe essere questo:
#!/bin/sh
cut cut
modifica a tuo piacimento :)
questo lo crei in /etc/init.d poi crei un link al runlevel per caricarlo all'avvio:
ln -s /etc/init.d/startscript.sh /etc/rc2.d/S99startscript
Grazie mille :sofico:
proverò a breve...!
borexino
28-09-2007, 18:19
borexino@machine:~$ sudo /etc/init.d/start_application.sh start
/etc/init.d/start_application.sh: 18: PIDFILE: not found
Starting APPLICATION .
borexino@machine:~$
borexino@machine:~$
purtroppo mi da questo errore! :doh:
e mo?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.