Crontab startet Programm nicht weil ...
Crontab startet Programm nicht weil ...
Hallo,
ich arbeite mit Crontab. Das funktioniert prima, aller 1 Woche Programm beenden und neustarten. Beenden geht, neustarten nicht, es liegt an meinem Script.
Ich habe den Fehler schon eingegrenzt, das Programm läuft in einer grafischen Benutzeroberfläche auf dem Server, nach dem beenden fehlt mir eine Zuweisung, dass es in der Session mit der GUI wieder neustarten soll. Zugriff auf den Server erlange ich mit XRDP.
Ich nutze Openbox, wie kann ich dem Programm sagen dort wieder neuzustarten?
Screen habe ich nicht installiert und möchte gar nicht soviel installieren, wenn ich ein Monitor dran hätte wäre es mit Crontab: "0 22 * * 6 DISPLAY=:0 firefox" möglich als Beispiel.
Gruss, Raul
ich arbeite mit Crontab. Das funktioniert prima, aller 1 Woche Programm beenden und neustarten. Beenden geht, neustarten nicht, es liegt an meinem Script.
Ich habe den Fehler schon eingegrenzt, das Programm läuft in einer grafischen Benutzeroberfläche auf dem Server, nach dem beenden fehlt mir eine Zuweisung, dass es in der Session mit der GUI wieder neustarten soll. Zugriff auf den Server erlange ich mit XRDP.
Ich nutze Openbox, wie kann ich dem Programm sagen dort wieder neuzustarten?
Screen habe ich nicht installiert und möchte gar nicht soviel installieren, wenn ich ein Monitor dran hätte wäre es mit Crontab: "0 22 * * 6 DISPLAY=:0 firefox" möglich als Beispiel.
Gruss, Raul
Zuletzt geändert von Raul am 02.07.2016 22:41:57, insgesamt 1-mal geändert.
Re: Crontab startet Programm nicht weil ...
prima!Raul hat geschrieben:Ich habe den Fehler schon eingegrenzt
da minecraft von microsoft aufgekauft wurde läuft das nur noch auf M$-systemen -/- versuch mal cmd scripte (bat sollte es auch tun)Raul hat geschrieben:das Programm läuft in einer grafischen Benutzeroberfläche auf dem Server, nach dem beenden fehlt mir eine Zuweisung, dass es in der Session mit der GUI wieder neustarten soll.
edit:
nun es gäbe noch tmux, aber anders wie auch auch brauchst du so etwas in der richtung, ich verstehe nicht was du dagegen hast?Raul hat geschrieben: Screen habe ich nicht installiert und möchte gar nicht soviel installieren
ob es nun screen ist oder tmux, es nimmt nicht viel platz und es ist sehr praktisch
aber wenn du diese beiden sachen nicht haben möchtest versuche mal "jobs" (das ist aber etwas kniffliger)
mfg.: ich
Re: Crontab startet Programm nicht weil ...
Hey swirlen, Danke für ein Feedback!
Ich könnte mir noch eine Alternative vorstellen, wenn ich in der Session mit der GUI ein Terminal offen lasse. Das Crontab-Script müsste ich über dieses Terminal ausführen lassen.
Weil von dort aus das Script funktioniert, nur nicht vom Crontab direkt.
Wie könnte ich dieses Terminal ansprechen?
Ich könnte mir noch eine Alternative vorstellen, wenn ich in der Session mit der GUI ein Terminal offen lasse. Das Crontab-Script müsste ich über dieses Terminal ausführen lassen.
Weil von dort aus das Script funktioniert, nur nicht vom Crontab direkt.
Wie könnte ich dieses Terminal ansprechen?
Re: Crontab startet Programm nicht weil ...
hm wie wäre es wenn du folgendes machst... du öffnest auf dein server mit grafischer oberfläge auf gnu / linux basis und startest auf dem terminal folgenes script
und das lässt du mit dem offenen terminal am laufen... blöd ist nur wenn du diesen terminal versehendlich schließt, denn dann wird der prozess unterbrochen... da wäre tmux oder screen eine möglichekeit das zu verhindern
Code: Alles auswählen
while true
do
<stopbefehl>
<startbefehl>
<oder ein neustartbefehl>
sleep 604800 # das dürfte eine woche sein in sec
done
mfg.: ich
Re: Crontab startet Programm nicht weil ...
Zuerst: Stichwort X11 magic Cookies:
Um Programme starten zu können braucht man das. Man bekommt das mit xauth list angezeigt und es steht im File. .Xauthority
Du musst das Programm mit dem gleichen user starten wie den X-Server.
Dann ließt das Programm das Cookie automatisch aus dem File.
So ist das kein richtiger crontab-Eintrag:
Da fehlt der User bzw. wird auf DISPLAY=:0 gesetzt.
So macht das Sinn:
Ansonten ist :0 vermutlich das falsche Display. Gucke einfach mal wie das gesetzt ist, wenn du den von Hand startest.
(echo $DISPLAY)
Um Programme starten zu können braucht man das. Man bekommt das mit xauth list angezeigt und es steht im File. .Xauthority
Du musst das Programm mit dem gleichen user starten wie den X-Server.
Dann ließt das Programm das Cookie automatisch aus dem File.
So ist das kein richtiger crontab-Eintrag:
Code: Alles auswählen
"0 22 * * 6 DISPLAY=:0 firefox"
So macht das Sinn:
Code: Alles auswählen
"0 22 * * 6 raul DISPLAY=:0 firefox"
(echo $DISPLAY)
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Crontab startet Programm nicht weil ...
Vielen Dank für die Mithilfe! Es ging doch auf einfachem Wege, hier der Lösungsweg:
Der Tip mit der Displayabfrage war super, echo $DISPLAY, in der GUI natürlich.
Crontab normal starten ohne Namen, 0 22 * * 6 /home/username/script
Und im Script starten, DISPLAY=:10.0 wine start 'C:\Pfad\MeinProgramm'
Den Server herzurichten hat viel Arbeit gemacht, jedoch langsam zufrieden damit
Gruss, Raul
Der Tip mit der Displayabfrage war super, echo $DISPLAY, in der GUI natürlich.
Crontab normal starten ohne Namen, 0 22 * * 6 /home/username/script
Und im Script starten, DISPLAY=:10.0 wine start 'C:\Pfad\MeinProgramm'
Den Server herzurichten hat viel Arbeit gemacht, jedoch langsam zufrieden damit
Gruss, Raul
Re: Crontab startet Programm nicht weil ...
Noch eine Anmerkung,
das Programm läuft dann nicht als child des Desktops oder auch von PID1,
sondern unterhalb von cron.
Bsp. eines derart gestarteten 'xeyes': oder
das Programm läuft dann nicht als child des Desktops oder auch von PID1,
sondern unterhalb von cron.
Bsp. eines derart gestarteten 'xeyes':
Code: Alles auswählen
# pstree | grep xeyes
|-cron---cron---sh---xeyes
Code: Alles auswählen
# pstree | grep xeyes
|-cron---cron---sh---xeyes_sh.sh---xeyes
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Crontab startet Programm nicht weil ...
Nicht das wir uns Mißverstehen, wenn ich "top" aufrufe, hat das Programm eine PID und ist unter dem festgelegten Usernamen nach der Durchführung des Crontab. Ist es somit richtig?das Programm läuft dann nicht als child des Desktops oder auch von PID1,
sondern unterhalb von cron.
Ich bin folgenden Weg gegangen:
crontab -e:
Code: Alles auswählen
0 21 * * 6 /home/username/scriptx
Code: Alles auswählen
DISPLAY=:10.0 wine start 'C:\Pfad\Programmstart.exe'
Re: Crontab startet Programm nicht weil ...
top mit 'V' in die Baumdarstellung schalten.Raul hat geschrieben: ... wenn ich "top" aufrufe, ...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Crontab startet Programm nicht weil ...
Ich war froh das es funktioniert.
Welchen Prozeß meinst Du, der nicht unter dem normalen Desktop, oder PID läuft?
Das per Crontab zu startende Programm unter WINE, sowie WINE selbst sind unter dem Usernamen und mit PID laufend. Bei ps -ax und top mit V.
Auch habe ich keinen Unterschied feststellen könne bei einem Vergleich zwischen vom Crontab gestarteten Programm und normal gestartet in der Baumübersicht bei top.
Evt. klappt das, weil WINE nur für den User eingerichtet ist, sowie Crontab und das Script.
Ich bitte um Klarheit.
Welchen Prozeß meinst Du, der nicht unter dem normalen Desktop, oder PID läuft?
Das per Crontab zu startende Programm unter WINE, sowie WINE selbst sind unter dem Usernamen und mit PID laufend. Bei ps -ax und top mit V.
Auch habe ich keinen Unterschied feststellen könne bei einem Vergleich zwischen vom Crontab gestarteten Programm und normal gestartet in der Baumübersicht bei top.
Evt. klappt das, weil WINE nur für den User eingerichtet ist, sowie Crontab und das Script.
Ich bitte um Klarheit.
Re: Crontab startet Programm nicht weil ...
Ich wollte nur darauf hinweisen, daß das Programm dann unterRaul hat geschrieben: Auch habe ich keinen Unterschied feststellen könne bei einem Vergleich zwischen vom Crontab gestarteten Programm und normal gestartet in der Baumübersicht bei top.
PID1 > cron -f > CRON -f > .....
statt wie gewöhnlich unterhalb der User-Session läuft.
----------------------------
Auch unter "gewöhnlichen" Umständen können sich Prozesse von der User-(X)-Session lösen und direkt unterhalb PID1 einordnen.
Hier,
direkt gestartet vom lxpanel statt aus dem openbox-Menü.
Oder wenn ich einen PPID-Prozeß beende, Bsp. firefox->keepass2 mit Beenden von firefox.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Crontab startet Programm nicht weil ...
Ok, vielen Dank für den Hinweis, er war zur Überprüfung gedacht.
Es läuft jetzt alles zufriedenstellend.
Ich mach für heute Feierabend, hatte ja die halbe Nacht daran gesessen, Raul
Es läuft jetzt alles zufriedenstellend.
Ich mach für heute Feierabend, hatte ja die halbe Nacht daran gesessen, Raul