Crontab startet Programm nicht weil ...

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Raul
Beiträge: 55
Registriert: 08.05.2005 09:36:04

Crontab startet Programm nicht weil ...

Beitrag von Raul » 02.07.2016 21:55:06

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
Zuletzt geändert von Raul am 02.07.2016 22:41:57, insgesamt 1-mal geändert.

Benutzeravatar
swirlen
Beiträge: 63
Registriert: 31.03.2014 16:42:06

Re: Crontab startet Programm nicht weil ...

Beitrag von swirlen » 02.07.2016 22:39:18

Raul hat geschrieben:Ich habe den Fehler schon eingegrenzt
prima!
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.
da minecraft von microsoft aufgekauft wurde läuft das nur noch auf M$-systemen -/- versuch mal cmd scripte (bat sollte es auch tun)

edit:
Raul hat geschrieben: Screen habe ich nicht installiert und möchte gar nicht soviel installieren
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?
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

Raul
Beiträge: 55
Registriert: 08.05.2005 09:36:04

Re: Crontab startet Programm nicht weil ...

Beitrag von Raul » 02.07.2016 23:07:27

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?

Benutzeravatar
swirlen
Beiträge: 63
Registriert: 31.03.2014 16:42:06

Re: Crontab startet Programm nicht weil ...

Beitrag von swirlen » 02.07.2016 23:26:10

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

Code: Alles auswählen

while true
do
<stopbefehl>
<startbefehl>
<oder ein neustartbefehl>
sleep 604800 # das dürfte eine woche sein in sec
done 
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
mfg.: ich

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Crontab startet Programm nicht weil ...

Beitrag von wanne » 03.07.2016 03:01:04

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:

Code: Alles auswählen

"0 22 * * 6 DISPLAY=:0 firefox"
Da fehlt der User bzw. wird auf DISPLAY=:0 gesetzt.
So macht das Sinn:

Code: Alles auswählen

"0 22 * * 6 raul DISPLAY=:0 firefox"
Ansonten ist :0 vermutlich das falsche Display. Gucke einfach mal wie das gesetzt ist, wenn du den von Hand startest.
(echo $DISPLAY)
rot: Moderator wanne spricht, default: User wanne spricht.

Raul
Beiträge: 55
Registriert: 08.05.2005 09:36:04

Re: Crontab startet Programm nicht weil ...

Beitrag von Raul » 03.07.2016 05:23:28

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 :THX:

Gruss, Raul

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Crontab startet Programm nicht weil ...

Beitrag von rendegast » 03.07.2016 11:59:06

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':

Code: Alles auswählen

# pstree | grep xeyes
        |-cron---cron---sh---xeyes
oder

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")

Raul
Beiträge: 55
Registriert: 08.05.2005 09:36:04

Re: Crontab startet Programm nicht weil ...

Beitrag von Raul » 03.07.2016 12:39:04

das Programm läuft dann nicht als child des Desktops oder auch von PID1,
sondern unterhalb von cron.
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?

Ich bin folgenden Weg gegangen:
crontab -e:

Code: Alles auswählen

 0 21 * * 6 /home/username/scriptx
scriptx:

Code: Alles auswählen

DISPLAY=:10.0 wine start 'C:\Pfad\Programmstart.exe'
In dem Beispiel von Dir, wird im Prozeßbaum nach xeyes gesucht und anschließend neu zugewiesen, zumindest verstehe ich es so.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Crontab startet Programm nicht weil ...

Beitrag von rendegast » 03.07.2016 14:31:45

Raul hat geschrieben: ... wenn ich "top" aufrufe, ...
top mit 'V' in die Baumdarstellung schalten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Raul
Beiträge: 55
Registriert: 08.05.2005 09:36:04

Re: Crontab startet Programm nicht weil ...

Beitrag von Raul » 03.07.2016 17:37:12

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. :wink:

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Crontab startet Programm nicht weil ...

Beitrag von rendegast » 03.07.2016 19:05:43

Raul 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.
Ich wollte nur darauf hinweisen, daß das Programm dann unter
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")

Raul
Beiträge: 55
Registriert: 08.05.2005 09:36:04

Re: Crontab startet Programm nicht weil ...

Beitrag von Raul » 03.07.2016 19:33:04

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

Antworten