Opstartsprogrammer i Ubuntu Server
Hej!
Jeg har ikke kunnet finde svaret på Google, så håber I vil hjælpe mig :-)
Jeg har to programmer der skal køre automatisk ved opstart. De kræver deres egen terminal, og jeg kan derfor ikke starte dem i /etc/init.d/rc.local (efter det første program er startet, optager det terminalen så det næste program ikke starter)
Hvordan løser jeg dette nemmest?
Venlig hilsen Morten
Jeg har ikke kunnet finde svaret på Google, så håber I vil hjælpe mig :-)
Jeg har to programmer der skal køre automatisk ved opstart. De kræver deres egen terminal, og jeg kan derfor ikke starte dem i /etc/init.d/rc.local (efter det første program er startet, optager det terminalen så det næste program ikke starter)
Hvordan løser jeg dette nemmest?
Venlig hilsen Morten
Kommentarer5
Du kan starte programmer som
programnavn &> /dev/null &
Hvis det ikke er nok, kan du kører programmet med nohup
nohup programnavn &> /dev/null &
Jeg har prøvet begge
Kan det være fordi, der er for mange parametre på det program jeg vil starte? Eks.: rotter -a -L dailydir -b 128 /usr/Arkiv
Lyder mystisk.
Du kan prøve
Du kan prøve at lukke for alle file descriptors, og se om det hjælper
Skriv følgende til et script, og kald det fra rc.local uden nogle argumenter.
#!/bin/bash
if [ -z "$1" ] ; then
MSGLOG=/dev/null
ERRLOG=/dev/null
exec 1>> $MSGLOG
exec 2>> $ERRLOG
exec 3>&-
$0 --daemon
exit
fi
rotter -a -L dailydir -b 128 /usr/Arkiv
Tak, det vil jeg prøve,
Koden i #3 er en tilpasning
http://tldp.org/LDP/abs/html/io-redirection.html
Princippet kendes som "fork off and die", hvor parent processen spawner en child og afslutter, hvorved child processen kører videre som en daemon.
http://wiki.linuxquestions.org/wiki/Fork_off_and_die