PDA

Bekijk Volledige Versie : Proces 24/7 draaien



MarcC
06/04/11, 17:54
Hallo,

Onlangs heb ik op mijn VPS java geïnstalleerd, en ik start een java-programma in de SSH terminal met behulp van het commando

java Watcher

Dit werkt in principe goed, maar ik wil dat dit proces ook door gaat als ik de SSH terminal afsluit. Op dit moment stopt het proces wanneer ik dat doe.

De VPS draait op Linux CentOS.

Alvast bedankt voor de hulp,

Marc

dennis0162
06/04/11, 17:56
Zie screen http://www.gnu.org/software/screen/

MarcC
06/04/11, 18:02
Meer informatie/ervaringen met screen zijn welkom

The-BosS
06/04/11, 18:05
Screen is een optie of je runt het in de background


java Watcher &
of
java Watcher > /dev/null &
of
java Watcher > /var/log/Watcher.log &
of
java Watcher > /dev/null 2>& 1 &

Denk dat je het wel snapt met de voorbeelden ;)

MarcC
06/04/11, 18:11
Hmm.. nu draait hij wel op de achtergrond, maar zodra ik het console-scherm wegklik, stopt het proces ook gewoon.

Moc
06/04/11, 18:57
Ja of je raadpleegt even je 'beste vriend' oftewel Google: http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

En dan nog wel even goed lezen ja, want het staat er echt in!

Luiwammes ... ;)

Edit: nog meer leesvoer http://www.gnu.org/software/screen/manual/screen.html

The-BosS
06/04/11, 19:03
Hmm.. nu draait hij wel op de achtergrond, maar zodra ik het console-scherm wegklik, stopt het proces ook gewoon.

Als hij op de achtergrond draaid dan blijft dat ding draaien ook nadat je console sluit, kan je normaal zien door opnieuw in te loggen en "ps aux" commando uit voeren. Waarop baseer je dat het niet meer werkt? Trouwens zit er geen optie in dat programma om het als deamon te draaien?

Dennis
06/04/11, 19:07
Je kunt het doen met nohup of screen, laatstgenoemde is mijn favoriete optie.

Je kunt met "nohup ./javawatcher" een proces op de achtergrond laten draaien. De output wordt gelogged naar nohup.out.

Je kunt ook "./javawatcher& draaien, maar dan wordt het proces inderdaad afgesloten bij het sluiten van het zelf.

Je kunt met:
"screen -Sjavawatcher" een nieuwe screen aanmaken
ctrl+a ctrl+d om uit de screen te gaan
exit (typen) om screen af te sluiten
screen -ls om screenlijst te zien
screen -r 8232.javawatcher om screen te herstellen.
Maar kijk even op de door Moc geposte link voor duidelijke instructies, zou goed kunnen dat in mijn voorbeelden fouten zitten met bijvoorbeeld hoofdletters o.i.d.

Oefen een beetje met het aanmaken, wisselen en verwijderen van screens en binnen 15 minuten heb je weer wat extra kennis. Het is een aanrader!

rimote
07/04/11, 10:33
Zou je niet ook een init.d script kunnen maken en het als daemon opstarten? Stukje uit zo een script:

start-stop-daemon -d /path/to/bin/ --background -vo -x java Watcher

Werkt goed bij bepaalde online games. CentOS heeft wellicht zijn eigen daemon-starter. Hier wordt gesproken over Debians package start-stop-daemon op CentOS: http://blogfranz.blogspot.com/2009/01/start-stop-daemon-on-centosrhel5-and.html