|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 374
|
Eseguire uno script in Bash come servizio
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? ![]() grazie a tutti!
__________________
La ditta PATISCE ma non FALLISCE!!!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1209
|
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.
__________________
...Ordunque... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2003
Città: XenTown - City of paravirtualization c/o Possagno (TV)
Messaggi: 539
|
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: Codice:
#!/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 ![]() questo lo crei in /etc/init.d poi crei un link al runlevel per caricarlo all'avvio: Codice:
ln -s /etc/init.d/startscript.sh /etc/rc2.d/S99startscript
__________________
@Work Samsung 700Z5A-S02 archlinux @CED ESX for debian servers - Mikrotik for networking @Home bastano le ore di pc al lavoro ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 374
|
Quote:
![]() proverò a breve...!
__________________
La ditta PATISCE ma non FALLISCE!!!! |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Feb 2005
Messaggi: 374
|
Quote:
![]() e mo?
__________________
La ditta PATISCE ma non FALLISCE!!!! |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:56.