SVN 6836: Patch fuer startYACY.sh fuer Prozesserkennung

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

SVN 6836: Patch fuer startYACY.sh fuer Prozesserkennung

Beitragvon Quix0r » Sa Apr 24, 2010 4:19 pm

Die im SVN verfuegbare startYACY.sh startet derzeit YaCy erneut, auch wenn YaCy bereits gestartet ist. die Erzeugte yacy.pid wird zwar korrekt angelegt, jedoch nicht weiter beachtet.

Anbei ein Patch, dass die yacy.pid ueberprueft. Ist diese vorhanden, wird versucht sie auszulesen und dann den laufenden Prozess unter /proc/ zu finden (das geht nur unter Linux und vielleicht auch andere Uni*-Deviate). Ist der Prozess nicht am laufen, wird die yacy.pid automatisch entfernt. Zudem enthaelt das Patch fuer andere Shells (ausser Bash) tauglichere Variablen ($FOO geht nicht mit Korn-Shell, da muss es ${FOO} heissen, was auch Bash erkennt).

Wenn YaCy bereits laeuft, kommt mit meinem Patch diese Meldung:
Code: Alles auswählen
./startYACY.sh: Not starting because YaCy is still running at PID xxxx

Wenn YaCy nicht mehr laeuft, die yacy.pid aber vorhanden ist, kommt mit meinem Patch dies:
Code: Alles auswählen
./startYACY.sh: WARNING: Stale PID file yacy.pid found and removed!
Dateianhänge
starter.patch.bz2
Passt auf Revision 7135
(4.74 KiB) 22-mal heruntergeladen
Zuletzt geändert von Quix0r am Sa Sep 11, 2010 4:11 am, insgesamt 9-mal geändert.
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN 6836: Patch fuer startYACY.sh fuer Prozesserkennung

Beitragvon Lotus » Sa Apr 24, 2010 8:35 pm

Das wird so gemacht, weil YaCy auch problemlos starten soll nachdem es gekillt wurde. Wenn YaCy schon läuft, bricht der Start bei der Port-Zuweisung ab. Soweit ich weiß ist die pid-Datei speziell für die Linux(Debian)-Sartscripte.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: SVN 6836: Patch fuer startYACY.sh fuer Prozesserkennung

Beitragvon Quix0r » Sa Apr 24, 2010 10:13 pm

Lotus hat geschrieben:Das wird so gemacht, weil YaCy auch problemlos starten soll nachdem es gekillt wurde. Wenn YaCy schon läuft, bricht der Start bei der Port-Zuweisung ab. Soweit ich weiß ist die pid-Datei speziell für die Linux(Debian)-Sartscripte.

Das klappt auch weiterhin mit diesem Patch. Nur muss dazu nicht erst YaCy starten, was lange und in Hinblick auf die Blobs wegen doppelten Zugriffs gefaehrlich sein kann. Schau es dir doch mal an, Funktion check_pid(). Dort wird weitergemacht, wenn kein Prozess unter der PID aus yacy.pid gefunden wurde (dazu muss man unter Linux und anderen Uni*-Devianten einfach das Verzeichnis /proc/[pid] suchen, wobei [pid] die PID ist...).

So wird es auch ueblicherweise bei anderen Prozessen gemacht: Nicht erst starten lassen und dann sich "wundern" dass der Port belegt ist, sondern vorher abfragen, ob der Prozess noch laeuft, mit dem oben beschriebenen Verfahren sollte das recht sicher sein.
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN 6836: Patch fuer startYACY.sh fuer Prozesserkennung

Beitragvon dulcedo » So Apr 25, 2010 10:20 am

Quix0r hat geschrieben:...in Hinblick auf die Blobs wegen doppelten Zugriffs gefaehrlich sein kann.

In dieser Hinsicht kann nicht passieren da die Dateien bis dahin nur lesend angefasst werden. Der Patch erspart aber gerade beim testen viel Aufwand, sind Nebeneffekte bei anderen sh-ausführenden BS möglich?
Code: Alles auswählen
I 2010/04/25 10:42:56 SERVER Initializing serverCore ...
I 2010/04/25 10:42:56 SERVER Trying to bind server to port 8080
S 2010/04/25 10:42:56 BusyThread thread 'httpd:8080' deployed, starting loop.

...

I 2010/04/25 10:43:09 PLASMA Excluded 0 words in URL http://www.mister-wong.de/tags/bilder%2Breiseberichte/?p=2
I 2010/04/25 10:43:10 PLASMA Excluded 0 words in URL http://linkarena.com/domain/1487919
I 2010/04/25 10:43:11 RICELL-shrink2 unmountSmallest(268435456)
I 2010/04/25 10:43:11 IODispatcher appended merge job of files text.index.20100425062059568.blob, text.index.20100421105850072.blob to text.index.20100425084311248.blob
I 2010/04/25 10:43:11 BLOBArray merging text.index.20100425062059568.blob with text.index.20100421105850072.blob
I 2010/04/25 10:43:11 RICELL-shrink3 unmountBestMatch(2.0, 8000000000)
I 2010/04/25 10:43:11 IODispatcher appended merge job of files text.index.20100421104935157.blob, text.index.20100425061907854.blob to text.index.20100425084311253.blob
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: SVN 6836: Patch fuer startYACY.sh fuer Prozesserkennung

Beitragvon Quix0r » So Apr 25, 2010 10:26 am

dulcedo hat geschrieben:
Quix0r hat geschrieben:...in Hinblick auf die Blobs wegen doppelten Zugriffs gefaehrlich sein kann.

In dieser Hinsicht kann nicht passieren da die Dateien bis dahin nur lesend angefasst werden. Der Patch erspart aber gerade beim testen viel Aufwand, sind Nebeneffekte bei anderen sh-ausführenden BS möglich?

BS=Betriebssysteme? Mit Windows denke ich mal schon... :ugeek: :P Ich denke aber alle Uni*-Deviate sollten dies fressen (und nun auch Korn-Shell, aber wegen der if [ some-expression] (die eckigen Klammern) weiss ich nicht recht, ob es wirklich mit allen /bin/sh-kompatiblen klappt. Ich habe hier z.B. dash, welches schneller ist als bash. :) csh ist auch gut verbreitet.
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron