2012-10-07 10 views
8

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

+0

Wie erwarten Sie, dass 'cron' Sie erreicht? Ein Terminal öffnen, eine GUI App starten? –

+0

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

+0

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. –

Antwort

9

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.

+0

Es funktioniert! Genau was ich wollte. Danke Renato. – Neo

1

Angenommen, Sie führen X aus, könnten Sie immer ein Fenster auf einem ausgewählten Bildschirm öffnen.

+0

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

+2

Ich meinte X windows, http://en.wikipedia.org/wiki/X_Window_System, und Sie verwenden es wahrscheinlich – Ofir

+0

Ja. Schätze, das haben auch die anderen vorgeschlagen. Vielen Dank. – Neo

2

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 
+0

Passen Sie es an Ihre Bedürfnisse an;) –

+0

Ich habe das gleiche versucht, aber es scheint immer noch im Hintergrund zu laufen. Danke für deine Antwort trotzdem. – Neo