2016-08-09 10 views
0

Ich habe eine Bash-Datei erstellt, die ein Python-Skript auf einem vorhandenen Bildschirm namens "conscreen" ausführt. Die bash-Datei enthält die folgende Zeile:Linux kann nicht auf Bildschirme auf Crontab zugreifen

screen -S cronscreen -X stuff "python test.py$(printf \\r)" 

Wenn ich die Datei von der Befehlszeile ausführen, es funktioniert gut, und ich sehe die Ausgabe gedruckt wird, wenn ich mein ‚cronscreen‘ anhängen. Allerdings möchte ich es in cron laufen, also habe ich crontab wie folgt festgelegt:

* * * * * myuser /home/myuser/myscript.sh > /home/ec2-user/agg.log 

Der Cron ausgeführt wird, weil ich, dass die Datei agg.log regeneriert wird jede Minute sehen, aber wenn ich anhängen 'conscreen', ich sehe dort keine Ausgabe gedruckt (und agg.log ist leer). Warum das? Vielen Dank.

Update:

Ich habe auch versucht, das Skript zu diesem Wechsel (Wiederanbringen des Bildschirms), aber keine Änderung:

screen -r cronscreen 
screen -S cronscreen -X stuff "python test.py$(printf \\r)" 

Antwort

1

Bildschirm benötigt eine tty aktiv um eine Sitzung zu schaffen, das ist nicht das, was ist unter Cron verfügbar.

Sie müssen diese in zwei Teile spalten, ist der erste Bildschirm laufen und machen es lösen - Bildschirm -DMS cronscreen und dann in Ihrem cronjob auf dem Bildschirm Sitzung mit -r cronscreen

+0

Sie das tun müssen, befestigen Bildschirm trennen von einer aktiven Sitzung, so dass es ein Tty hat und Sie müssen-DmS , um es zu tun – Amias

Verwandte Themen