anoniem Geplaatst: 4 april 2003 Delen Geplaatst: 4 april 2003 Ik heb een proces die automatisch opstart. Na twee uur wil ik hem weer stoppen. Hij start op in een cron-job. Maar hoe stop ik hem nu weer? Ik zat te denken aan een kill -pid. Maar nu veranderd de -pid steeds. De procesnaam blijft hetzelfde. Hoe kom ik achter de -pid van een procesnaam en hoe stuur ik deze waarde door naar de kill -pid. Quote Link naar reactie
anoniem Geplaatst: 4 april 2003 Auteur Delen Geplaatst: 4 april 2003 er zijn grofweg drie manieren. 1. killall (onder Linux, niet andere Unixen!): killall blackbox killt alle processen met de naam blackbox. Heeft je proces dus een duidelijk herkenbare naam, en weet je zeker dat er nooit onbedoeld andere processen met die naam draaien, dan kan dat. 2. het programma start-stop-daemon uit het pakketje debianutils. Zie man start-stop-daemon. Erg handig, misschien wel de beste methode. 3. de $! variabele van bash. schrijf een startscriptje voor je cron-taak: [code:1:bb77e81002] # start proces startproces argument blabla blaat & # de $! variabele bevat de pid van het laatst gestarte proces. echo $! > /var/run/blaat.pid [/code:1:bb77e81002] stoppen kan dan zo: [code:1:bb77e81002] # stop proces kill `cat /var/run/blaat.pid` rm -f /var/run/blaat.pid [/code:1:bb77e81002] of, netter: [code:1:bb77e81002] # stop proces if test -r /var/run/blaat.pid; then kill `cat /var/run/blaat.pid` rm -f /var/run/blaat.pid fi [/code:1:bb77e81002] Waar je wel op moet letten bij deze startconstructie, is of het proces niet zelf nog een keer een fork(2) uitvoert. In dat geval klopt de PID natuurlijk niet meer. Dit soort dingen werkt dus niet zomaar bij MySQL of Apache. Maar deze servertoepassingen hebben altijd wel hun eigen start-stop technieken. Raadpleeg daarvoor de documentatie. Verder kun je natuurlijk altijd met ps|grep|awk constructies gaan prutsen. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen