Gibt es unter Linux eine Möglichkeit, einen Cron-Job im Vordergrund (oder im interaktiven Modus) auszuführen? (Ich habe ein Programm, das regelmäßig ausgeführt wird, um Benutzereingaben zu akzeptieren und eine Verarbeitung durchzuführen. Daher möchte ich es als Cron-Job einplanen, der im Vordergrund ausgeführt werden kann).Linux: Cron-Job im Vordergrund ausführen
Antwort
das Probieren Sie auf der Benutzer crontab
:
@hourly DISPLAY=:0 xterm -e /path/to/my/script.sh
Es öffnet sich (stündlich) ein xterm
mit Ihrem Skript ausgeführt, und beenden Sie, nachdem Ihr Skript beendet. Natürlich sollten Sie den @hourly
Teil an Ihre Bedürfnisse anpassen.
Es funktioniert! Genau was ich wollte. Danke Renato. – Neo
Angenommen, Sie führen X aus, könnten Sie immer ein Fenster auf einem ausgewählten Bildschirm öffnen.
Ich nehme an, Sie meinen Mac OS X. Ich benutze Ubuntu. Allerdings würde ich wollen, dass mein Skript sowohl auf Ubuntu als auch auf Mac OS X funktioniert. – Neo
Ich meinte X windows, http://en.wikipedia.org/wiki/X_Window_System, und Sie verwenden es wahrscheinlich – Ofir
Ja. Schätze, das haben auch die anderen vorgeschlagen. Vielen Dank. – Neo
Für GUI
Skripte in cron
, versuchen Sie die folgende Zeile in einem shell
:
crontab -e
Dann in crontab
:
0 7 * * * DISPLAY=:0 /PATH/TO/SCRIPT
Passen Sie es an Ihre Bedürfnisse an;) –
Ich habe das gleiche versucht, aber es scheint immer noch im Hintergrund zu laufen. Danke für deine Antwort trotzdem. – Neo
Wie erwarten Sie, dass 'cron' Sie erreicht? Ein Terminal öffnen, eine GUI App starten? –
Das Öffnen eines Terminals würde für mich arbeiten. Eigentlich möchte ich keine anspruchsvolle GUI-App erstellen. Mein Gedanke ist folgender: Wenn ich das Programm manuell von einer Shell aus starte, kann ich interaktiv Eingaben machen. Ich möchte in der Lage sein, dasselbe zu tun, wenn das Programm automatisch läuft. – Neo
Sie könnten vielleicht von 'expect' http://www.tcl.tk/man/expect5.31/expect.1.html interessiert sein, aber ich bin mir nicht sicher, ob es eine gute Idee ist, es zu benutzen. –