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
Kommentarer5
Du kan starte programmer som
Du kan starte programmer som baggrundsprocesser med '&' det burde være tilstrækkeligt for at den kan køre fra rc.local
programnavn &> /dev/null &
Hvis det ikke er nok, kan du kører programmet med nohup
nohup programnavn &> /dev/null &
Jeg har prøvet begge
Jeg har prøvet begge forslag, men uden held.
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
Lyder mystisk.
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,
Tak, det vil jeg prøve, næste gang jeg sidder ved min server. Er det noget du selv har skrevet, eller har du et link hvor jeg kan læse mere? Det er jo altid dejligt selv at lære lidt også, i stedet for "kun" at kopiere det direkte :)
Koden i #3 er en tilpasning
Koden i #3 er en tilpasning fra et daemonize script jeg engang skrev, formentligt baseret på viden samlet sammen herfra:
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