Window-Installer: sauberes Entfernen von YaCy

Forum for developers

Window-Installer: sauberes Entfernen von YaCy

Beitragvon PCA42 » Fr Dez 02, 2011 5:53 pm

Kurz vorweg: ich verlagere mal ein Thema aus Mails zwischen Orbiter, Lotus und meinereiner mal an diese Stelle. Dann ist das besser nachzuvollziehen und vielleicht kommt ja noch eine gute Idee von jemanden dazu.

Zum Thema:
Unter Windows ist es umständlich, Prozesse wie z.B. Yacy über eine PID zu steuern. Noch bescheidener funktioniert das aus dem NSIS heraus. In der "DATA/yacy.running" steht inzwischen zum Glück die PID.
Die Bordmittel sind leider eingeschränkt, wenn man an eine Prozess über die PID ran möchte. Auch die vielen Windows-Versionen machen das nicht einfacher. Ich bin derzeit auf der Suche nach einem kleinen Kommandozeilen-Tool, was hier helfen könnte.

Was aber vielleicht eine Zwischenlösung ist:
YaCy überwacht über einen Thread, ob die "DATA/yacy.running" existiert. Ist sie weg, beendet sich die Java-Instanz ohne Rücksicht auf Verluste, sprich die Datenbanken werden einfach geschlossen ohne Index-Dateien zu schreiben, der RAM-Cache wird nicht gesichtert etc. Damit haben wir einen schnelles runterfahren und können dann über den Uninstaller auch einfach YaCy beenden und entfernen. Das ist dann auch verwendbar, wenn das Web-Interface z.B. nicht mehr erreichbar ist. Hilft zwar leider nicht, wenn Yacy selbst hängt, aber das sollte ja eigentlich nicht vorkommen ;)
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Window-Installer: sauberes Entfernen von YaCy

Beitragvon Lotus » Fr Dez 02, 2011 8:29 pm

Also als Lösungsvorschlag (anders ausgedrückt)
Um YaCy (hart) zu beenden, wird die yacy.running vom Installer aus gelöscht, und YaCy beendet sich dann automatisch ohne Rücksicht auf Verluste? (System.exit())


Ich habe auch noch eine Idee (Programmflussorientiert):
Wenn der Uninstaller eine Rückmeldung über den Erfolg des Löschens erhält, dann kann er daran entscheiden ob YaCy läuft oder nicht, indem als erste Datei eine Datei gelöscht wird, die grundsätzlich gesperrt ist wenn YaCy läuft.
2 wesentiche Sachen sind dazu zu machen: 1) Rückmeldung für den Programmfluss bekommen 2) eine geeignete Datei finden
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Window-Installer: sauberes Entfernen von YaCy

Beitragvon PCA42 » Fr Dez 02, 2011 9:02 pm

Gute Idee. Als Datei zum Prüfen ob YaCy läuft ist meiner Meinung nach "DATA\WORK\api.bheap" geeignet. Ist im laufenden Betrieb gesperrt und kann auch kaum "wegkonfiguriert" werden.

1. Schritt: Installer löscht "DATA\yacy.running"
> YaCy beendet sich
2. Installer testet periodisch ob sich "DATA\WORK\api.bheap" löschen läßt
> geht das nach 30 Sekunden nicht, kommt ein Hinweis, dass der PC neu gestartet werden soll um dann YaCy zu entfernen.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Window-Installer: sauberes Entfernen von YaCy

Beitragvon Lotus » Fr Dez 02, 2011 9:49 pm

PCA42 hat geschrieben:1. Schritt: Installer löscht "DATA\yacy.running"
> YaCy beendet sich

Dazu kann auch stopYACY.bat aufgerufen werden.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Window-Installer: sauberes Entfernen von YaCy

Beitragvon PCA42 » Sa Dez 03, 2011 7:24 am

Das wäre der normale Weg. Dabei wird jedoch ein Shutdown über das Webinterface ausgelöst, was jedoch aus den unterschiedlichsten Gründen hängen kann. Auch wird dabei Yacy langsam heruntergefahren, d.h. DHT-Transfers werden abgeschlossen, Index-Dateien geschrieben etc.

Ich wollte deshalb lieber eine zusätzliche "rücksichtslose" Methode, um den Prozess des Beendens zu beschleunigen und sicherer zu sein, das es läuft.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Window-Installer: sauberes Entfernen von YaCy

Beitragvon Lotus » So Jan 15, 2012 7:12 pm

Ab nun erkennt der Uninstaller sicher, dass YaCy noch läuft:
https://gitorious.org/yacy/rc1/commit/4 ... de1f3a9971

Ist erst wirksam, wenn mit diesem Installer installiert wurde, da der Installer den uninstaller mitbringt. Ein YaCy-Update hilft dagegen nicht.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg


Zurück zu YaCy Coding & Architecture

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast