3rd-Party-spk - Ausführung zu bestimmten Zeiten starten & beenden

Status
Für weitere Antworten geschlossen.

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Hallo,
Ich habe das transmission-spk aus dem forum.synology.com (http://forum.synology.com/enu/viewtopic.php?f=38&t=14773) installiert. Ganz normale 3rd-Party-Applikation also.
Jetzt will ich die aber zu bestimmten Zeiten beenden, bzw. auch starten. Wie kann ich das machen? (Ich vermute mal, es geht per CronJob, aber da hab ich leider 0 Ahnung von, ich bin recht neu auf dem UNIX-artigen Gebiet ;)

Danke schonmal für jegliche Hilfe!
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Ich habe die von dir erwähnten Pakete nicht installiert aber vielleicht mal vorweg was Grundsätzliches: Das .spk ist nur die Integration in die Weboberfläche, also eine GUI die aus Skripten, Icons und Formularen besteht. Transmission ist ein Programm das wie jedes andere per cron gestartet werden kann. Dazu einfach eine Zeile eintragen in [FONT=&quot]/etc/crontab.

[/FONT] Änderungen werden erst nach Neustart von crond wirksam:
/usr/syno/etc/rc.d/S04crond.sh stop/usr/syno/etc/rc.d/S04crond.sh start
 

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Das .spk ist nur die Integration in die Weboberfläche, also eine GUI die aus Skripten, Icons und Formularen besteht.
weiß ich ;)
Transmission ist ein Programm das wie jedes andere per cron gestartet werden kann. Dazu einfach eine Zeile eintragen in [FONT=&quot]/etc/crontab.

[/FONT] Änderungen werden erst nach Neustart von crond wirksam:
/usr/syno/etc/rc.d/S04crond.sh stop/usr/syno/etc/rc.d/S04crond.sh start
Hab ich mir gedacht ;) Danke
Wie finde ich den den Namen von dem Prozess raus? Wie beende ich einen Prozess (per Cron)?
Und wenn ich jeden Tag, bspw. um 7h starten will, reciht es dann, eine 7 für die Stunde, 0 in minute und bei dem Datum jeweils nur *?!
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Auf der Kommandozeile mal die Ausgabe von top studieren. Da müste sich der Prozessname rausfinden lassen. Oder nach Installationsverzeichnis suchen.

In die crontab muss dann der Programmname mit Pfad. Die Angabe von * für die Tage genügt. Beenden geht mit Kill und PID

Meine crontab sieht so aus um täglich um 14:00 die Uhrzeit zu synchronisieren:

[FONT=&quot]#minute hour mday month wday who command[/FONT]
[FONT=&quot]0 14 * * * root /usr/sbin/ntpdate -b pool.ntp.org[/FONT]
 

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Danke erstmal.
Der Prozessname ist "transmission-daemon -f", und es steht, im egensatz zu allen anderen Prozessen (hab "ps" aufgerufen), kein Pfad dabei!
Beende ich das per "kill 15005" (<- PPID. Ändert sich bei jedem Start?!), dann kommt keine Fehlermeldung, allerdings ist der Prozes dann auch nicht verschwunden,er wird weiterhinn angezeigt, aber anscheinen geht wieder von 0, da die benötigten Resourcen erst kurz wieder auf Null fallen…

Außerdem lässt sich das Paket danach auch nicht mehr im DSM beenden? (Über Packetmanagemengt) Erst nach einem Neustart der DS wieder?!

Und noch ein Problem habe ich: Datenverlust. Transmission ist ein (Bittorrent-)Download-Client. Wird der per kill befehl beendet (oder, wenn ich den Stecker ziehe :D), dann sind zwar nicht die heruntergeladen Daten weg, aber der Fortschritt, sodass die unfertigen Downloads nochmal neu überprüft/indiziert werden müssen, und das dauert bei entsprechender Größe (>50GB sind das schon mal…) entsprechend lange. Beende ich aber "das Packet" per DSM tritt das Problem nicht auf…
Gibt es dazu eine Lösung? Vllt. Eine Alternative zum Kill befehl? Oder hat das mit der Form des Prozesses zu tun?!

Viele neu Fragen, ich weiß, aber Danke schon mal…
PS: Da ich den transmission-daemon nicht beenden konnte, weiß ich auch nicht, ob ein Aufruf des Namens zum starten ausreicht?!
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ich habe jetzt mal eine (!) Minute ein wenig gegoogelt und verstehe transmission so, dass es aus einem Backend (daemon) und einem Web-Frontend (auf der DS) besteht. Die Steuerung geschieht über das Frontend und das Backend muss (!) immer laufen. Eine zeitliche Steuerung muss folglich auch über das Frontend realisiert werden. Wenn man das Backend per crond steuern würde, geht vermutlich jedlicher Kontext verloren ...

Langer rede kurzer Sinn: es scheint mir vergeblich zu sein, dass per crond zeitlich steunern zu wollen. Gibt es denn keine zeitlichen Konfigurationen in der Weboberfläche (so wie das bei anderen Download-Clients der Fall ist)?

Itari
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
13
Punkte
84
Und noch ein Problem habe ich: Datenverlust. Transmission ist ein (Bittorrent-)Download-Client. Wird der per kill befehl beendet (oder, wenn ich den Stecker ziehe :D), dann sind zwar nicht die heruntergeladen Daten weg, aber der Fortschritt, sodass die unfertigen Downloads nochmal neu überprüft/indiziert werden müssen, und das dauert bei entsprechender Größe (>50GB sind das schon mal…) entsprechend lange. Beende ich aber "das Packet" per DSM tritt das Problem nicht auf…
Gibt es dazu eine Lösung? Vllt. Eine Alternative zum Kill befehl? Oder hat das mit der Form des Prozesses zu tun?!
Wenn das Starten und Stoppen per DSM korrekt funktioniert dann kannst das Start/Stop-Skript vom Transmission Packet benutzen.
Das Start/Stop-Skript befindet sich in /var/packages/transmission/scripts/start-stop-status und wird auch vom DSM Packetmanagement benutzt. Zum Starten gebe folgendes ein:
Rich (BBCode):
sh /var/packages/transmission/scripts/start-stop-status start
zum Stoppen dann logischerweise folgendes:
Rich (BBCode):
sh /var/packages/transmission/scripts/start-stop-status stop
für den Status, ob das Skript grad läuft oder nicht:
Rich (BBCode):
sh /var/packages/transmission/scripts/start-stop-status status
Wenn das Alles so funktioniert wie du dir das vorstellst, könntest du das nun so per Cron steuern.
 

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Danke, QTip, ich probiers mal, aus, das ist genau das, was ich will!

@itari, ja stimmt. Über das Frontend kann man aber leider nur Zeiten für gedrosselte Geschwindigkeiten definieren, und das auch nur recht schlecht.
Außerdem werden weiterhin Resourcen verbraucht (die ich ja für andere Zwecke auf der DS nehmen könnte, sind grad (der überprüft noch die 150GB;) ~82% Last…) , und die Verbindungen sind offen, auch wenn die Maximale Rate bei 0 liegt. Wenn 50 Verbindungen oder so zusätzlich (ganz normale 20k-Home-Leitung) offen sind, merkt man das schon beim Browsen…

€dit: Das Script (Danke nochmal^^) macht übrigens "killall transmission-daemon". Veilleicht lag's daran… Und da steht auch bei "Need to kill 2-3 times to work"… Ich schreib das Script jetzt einfach mal in die cron-Tabelle, und hoffe, es klappt ;)
 
Zuletzt bearbeitet:

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
sh - Benutzer?

Rich (BBCode):
sh /var/packages/transmission/scripts/start-stop-status start

Das "sh" ist aber für die Spalte "who", gell?

PS: Die Befehle funktionieren über Telnet, dann sollten die in der Crontab ja auch gehen…
Die schaut jetzt so aus:
#minute hour mday month wday who command
45 21 * * * sh /var/packages/transmission/scripts/start-stop-status start
30 06 * * 1,2,3,4,5 sh /var/packages/transmission/scripts/start-stop-status stop
 
Zuletzt bearbeitet:

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
13
Punkte
84
Nein, das "sh" gehört mit zum Kommando, da das Skript keine Endung hat. Normalerweise sollte es auch so gehen, da ja im Shebang (die 1. Zeile im Skript) der Interpreter bestimmt wird.
Bei "who" kommt beim eingebauten Cron generell "root" rein. Im Cron ist es immer besser den vollen Pfadnamen zum Interpreter zu benutzen, da der Cron nur ein abgespecktes Environment hat.
Also besser generell im Cron
Rich (BBCode):
/bin/sh /var/packages/transmission/scripts/start-stop-status start
benutzen.
Beim Cron aufpassen; die Lücken sind keine Leerzeichen, sondern Tab's. Wenn du es komfortabler haben möchstest, dann kannst auch das AdminTool oder eines der Cronjob SPK's benutzen, Quellen stehen im Wiki - Übersicht über verfügbare 3rd-Party-Apps aus unserer Community
 
Zuletzt bearbeitet:

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Jaja, ich hab itaris crontab-Manager installiert ;) Läuft super.
Ich habs dann jetzt so eingetragen:
attachment.html
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Ja wie denn nu? Fehlt da die 2. Hälfte deines Beitrags? ;)
 

niklasR

Benutzer
Mitglied seit
16. Jun 2010
Beiträge
220
Punkte für Reaktionen
0
Punkte
0
Nein? Was fehlt? Das Bild? (Komisch, mit Safari & Internet Explorer hab ich auch keins, mit Chrome wirds angezeigt… auch nach Cache-Leerung und Refresh?!)
Ich lad's nochmal hoch…
Edith sagt hier ist es!
 

Anhänge

  • dsm_crontab.jpg
    dsm_crontab.jpg
    28,5 KB · Aufrufe: 22

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Jetzt sehe ich auch das Bild.
 
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 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!