"Regain" automatisch starten?

Status
Für weitere Antworten geschlossen.

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Mein erstes Synology NAS DS1512+ läuft jetzt etwa seit einer Woche und ich taste mich nun die neuen Dinge heran...

Ich habe die Linux Desktop Version der Suchmaschine bzw. des Crawlers "regain" siehe auch http://regain.sourceforge.net/index.php installiert.
Von einer Shell gestartet funktioniert das auch wunderbar, aber wie kann ich regain automatisch beim Hochfahren meiner Diskstation starten.

Ich dachte, ein Skript /usr/syno/etc.defaults/rc.d/S99regain.sh würde dafür sorgen.


#!/bin/bash

# Example of Linux regain start script

cd /volume1/@appstore/regain
java -jar regain.jar -noTrayIcon


Dem ist aber nicht so.

Über Hinweise, wie ich das angehen sollte, wäre ich sehr dankbar.

Gruß
_ak1_
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ich würde als erstes mal die SheBang Zeile anpassen. Die bash hast du kaum als Shell in der Firmware. Bei der Firmware wäre es ash oder sh
Dann muss das Script ausführbar sein (chmod +x /pfad/datei)
Zudem sollte ein Startscript einen Parameter entgegennehmen. Es wird mit dem Parameter start bei booten aufgerufen z.B.
Code:
#!/bin/sh

if [ "$*" = 'start' ] ; then
 cd /volume1/@appstore/regain
 java -jar regain.jar -noTrayIcon
fi
 

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Danke für den Tipp.
Leider klappt es immer noch nicht. Wenn ich das Skript direkt aufrufe, dann ist
alles ok.

unter /usr/syno/etc.defaults/rc.d
S99regain.sh start &

und alles ist bestens.

Beim Systemstart wird "regain" damit nicht gestartet. Das Start Skript selbst aber wohl schon. Ich habe zur Kontrolle ein echo S99regain >>/var/log/messages eingefügt und kann die Ausgabe im Logfile wiederfinden.

Was mache ich falsch?

Vielleicht mag das ja auch mal ein erfahrenes Mitglied des Forums ausprobieren. Ich finde, dass "regain" eine tolle Lösung ist.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.140
Punkte für Reaktionen
3.945
Punkte
488
Denk dran, dass beim Booten ein anderer Pfad gesetzt ist, als beim interaktiven Aufruf. Evtl. wird dadurch "java" nicht gefunden. Setz den benötigten Pfad (PATH=...) innerhalb des Scripts besser nochmal neu.

Gruß Benares
 

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Tatsächlich war der nicht gesetzte Pfad ein Problem. Jetzt startet "regain". Danke! Leider kommt wieder ein "aber".
Andere Anwendungen werden nicht mehr gestartet (sabnzbd oder Logitech Media Server) und ich kann mich nicht mehr über das Web Interface an der Diskstation anmelden. Ich bekomme die Meldung, dass gerade aktualisiert wird und ich es später wieder versuchen soll. Der Synology Assistent zeigt den Status "Dienste werden gestartet" an. Auch meine externe USB Platte wird nicht gemounted.

Nachdem ich per ssh den java Prozess per kill beendet habe, läuft auch alles andere wieder normal.
Offensichtlich blockiert das Startskript den weiteren ordentlichen Start.

Ich hätte nicht gedacht, dass der Autostart mich vor derartige Probleme stellt. Weitere Hinweise sind sehr willkommen!
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.140
Punkte für Reaktionen
3.945
Punkte
488
Das liegt wohl daran, dass dein Startscript nicht fertig wird. Änder mal
Code:
java -jar regain.jar -noTrayIcon
in
Code:
java -jar regain.jar -noTrayIcon &
Damit wird regain im Hintergrund ausgeführt das Script wird beendet.

Gruß Benares
 

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Ok, das war es wohl. Vielen Dank! Ich habe dabei einiges gelernt.

Eine Frage noch: Ist es von Bedeutung oder hilfreich auch "stop" oder "restart" Parameter entgegen zu nehmen bzw. zu verarbeiten?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Eine Frage noch: Ist es von Bedeutung oder hilfreich auch "stop" oder "restart" Parameter entgegen zu nehmen bzw. zu verarbeiten?
Hilfreich ist imho v.a. noch der restart Parameter. Dann kannst du den Dienst einfacher neustarten. allerdings setzt der eigentlich den stop auch voraus. Im stop killst du den Prozess z.B.
Code:
#!/bin/sh

case "$*" in
 'start')
  PID="$(ps | grep regain | grep -v grep | awk '{print $2}')"  
  [ "x$PID" != 'x' ] && echo 'Laeuft bereits' && exit 0
   /pfad/zu/java -jar /pfad/zu/regain.jar -noTrayIcon &
 ;;
 'stop')
  PID="$(ps | grep regain | grep -v grep | awk '{print $2}')"
  [ "x$PID" = 'x' ] && echo 'Laeuft nicht' && exit 0
  kill $PID >/dev/null 2>&1
 ;;
 'restart')
   $0 stop
   $0 start
 ;;
esac
zuerst also die PID (processID) deines java Prozesses ermitteln. Daran kann dann das Script erkennen ob der Prozess bereits läuft oder nicht
 

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Danke. Ich habe die Start/Stop/Restart Variante nur kurz ausprobiert und es hat nicht auf Anhieb funktioniert. Da ich ein viel kritischeres Problem entdeckt habe, kümmere ich mich darum aber erst später.

Das kritische Problem:

Rich (BBCode):
 #!/bin/ash
PATH=/var/packages/JavaManager/target/Java/bin:/var/packages/JavaManager/target/Java/jre/bin

if [ "$*" = 'start' ] ; then
 cd /volume1/unsortiert/regain
 java -jar regain.jar -noTrayIcon &
fi

Wenn "regain" auf diese Weise gestartet wird, dann kann der Crawler Dateien mit Umlauten im Namen nicht mehr lesen:

2013-02-23 16:31:46 [Thread-24] ERROR: File is not readable: 'file:///volume1/share/TOP-Rezepte/B%EF%BF%BD%EF%BF%BDrlauch-Carbonara+%2804-2010%2C+S.+22%29.pdf'

Bei manuellem Start funktioniert das. Also irgend ein Problem mit dem Zeichensatz der aufrufenden Shell?!
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.140
Punkte für Reaktionen
3.945
Punkte
488
Bei manuellem Start funktioniert das.
Manuell per "java -jar regain.jar -noTrayIcon &" oder über das Script?

Ich denke eher, dass da noch was im Pfad fehlt. Stell ihn mal so ein, wie "echo $PATH" es bei manueller Anmeldung ausgibt und nimm auch auch "export PATH" mit auf.
Bei manueller Anmeldung wird /etc/profile und /root/.profile durchlaufen. Vielleicht steht da sonst nochwas drin, was auch für das Script wichtig sein könnte.

Gruß Benares
 

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Nach Deinem Tipp habe ich mich jetzt noch an den Einträgen in /etc/profile orientiert:

Rich (BBCode):
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/var/packages/JavaManager/target/Java/bin:/var/packages/JavaManager/target/Java/jre/bin
JAVA_HOME=/var/packages/JavaManager/target/Java/jre
CLASSPATH=.:/var/packages/JavaManager/target/Java/jre/lib
LANG=en_US.utf8
export CLASSPATH PATH JAVA_HOME LANG


if [ "$*" = 'start' ] ; then
 cd /volume1/unsortiert/regain
 java -jar regain.jar -noTrayIcon &
fi

Jetzt geht es auch beim Systemstart. Ich werde nochmal die LANG Variable ändern und sehen, ob das auch passt de_DE.utf8 sollte richtig sein.
 

delphos

Benutzer
Mitglied seit
05. Mai 2013
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hi ... ich habe den Beitrag zufällig gesehen und es ist genau das, wonach ich gesucht habe. Dennoch habe ich das Gefühl nicht voran zu kommen. Ich habe ein DS412 (DS). Regain wird schon seit 2 Jahren als Notebook (NB) Lösung für ca. 30 GB Dokumente verwendet. Bisher sieht so aus: Goodsync lässt alle Dateien des NB auf die DS synchrom bleiben. Regain wird auf den NB verwendet. Es scheint jedoch versprechend alles auf DS zu lassen und von dort aus Regain zu führen. Aber... sorry für meine Frage... wie mache ich es eigentlich?

Grüße aus Bonn

delphos
 

_ak1_

Benutzer
Mitglied seit
20. Sep 2012
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Ist Deine Frage, wie man Regain auf dem Synology NAS installiert und nutzt?

Ich habe ein Intel Atom basierendes Synology NAS.
1. Java RE Paket installieren
2. Regain Desktop für Linux an geeigneter Stelle auf dem NAS auspacken/installieren
3. Ein Startscript hinterlegen: /usr/syno/etc.defaults/rc.d/S99regain.sh

Mein Startscript sieht so aus (Achtung Pfade anpassen):

Code:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/var/packages/JavaManager/target/Java/bin:/var/packages/JavaManager/target/Java/jre/bin
JAVA_HOME=/var/packages/JavaManager/target/Java/jre
CLASSPATH=.:/var/packages/JavaManager/target/Java/jre/lib
LANG=en_US.utf8
export CLASSPATH PATH JAVA_HOME LANG


if [ "$*" = 'start' ] ; then
 cd /volume1/unsortiert/regain
 java -jar regain.jar -noTrayIcon &
fi

4. Konfiguration/Suche über Web GUI http://diskstation:8020

Ich hoffe, das hilft.

_ak1_
 

delphos

Benutzer
Mitglied seit
05. Mai 2013
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo _ak1_,

vielen Dank! Ich bin mir fast sicher schon mal gelesen zu habne, dass die DS411 nicht intel basiert ist.
Somit scheint meine Anfrage gleich nichtig gewesen zu sein - richtig? Oder wäre eine installation trotzdem möglich?

Grüße aus Bonn

Delphos
 

delphos

Benutzer
Mitglied seit
05. Mai 2013
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo _ak1_

Danke again für Deine Hilfe. Werde alles nachlesen und sehen, ob ich es dann hin kriege :)
Grüße aus Bonn

delphos
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat