2012-10-07 28 views
8

Trong Linux, có cách nào để chạy một công việc cron ở nền trước (hoặc chế độ tương tác) không? (Tôi có một chương trình chạy theo định kỳ để chấp nhận đầu vào của người dùng và thực hiện một số xử lý. Vì vậy, tôi muốn lên lịch nó như một công việc cron có thể chạy ở nền trước).Linux: Chạy cron job ineground

+0

Làm thế nào để bạn mong đợi 'cron' liên hệ với bạn? Mở một thiết bị đầu cuối, khởi chạy một ứng dụng GUI, v.v ...? –

+0

Mở một thiết bị đầu cuối sẽ làm việc cho tôi. Trên thực tế, tôi không muốn tạo một ứng dụng GUI tinh vi. Suy nghĩ của tôi là như sau: Nếu tôi chạy chương trình bằng tay từ một trình bao, tôi có thể cung cấp cho đầu vào tương tác. Tôi muốn có thể làm như vậy khi chương trình chạy tự động. – Neo

+0

Có thể bạn có thể quan tâm đến 'mong đợi' http://www.tcl.tk/man/expect5.31/expect.1.html nhưng tôi không chắc là nên sử dụng nó. –

Trả lời

9

Hãy thử điều này trên người dùng của bạn crontab:

@hourly DISPLAY=:0 xterm -e /path/to/my/script.sh 

Nó sẽ mở ra (hàng giờ) là xterm với việc thực thi tập lệnh của bạn và thoát sau khi tập lệnh của bạn thoát. Tất nhiên, bạn nên sửa đổi phần @hourly để phù hợp với nhu cầu của bạn.

+0

Nó hoạt động! Chỉ là những gì tôi muốn. Cảm ơn Renato. – Neo

1

Giả sử bạn đang chạy X, bạn luôn có thể mở cửa sổ trên màn hình đã chọn.

+0

Tôi giả sử, bạn có nghĩa là Mac OS X. Tôi đang sử dụng Ubuntu. Tuy nhiên, tôi sẽ muốn kịch bản của tôi để làm việc trên Ubuntu cũng như Mac OS X. – Neo

+2

Tôi có nghĩa là X cửa sổ, http://en.wikipedia.org/wiki/X_Window_System, và bạn có thể sử dụng nó – Ofir

+0

Vâng. Đoán đó cũng là những gì người khác đã gợi ý. Cảm ơn. – Neo

2

Đối GUI script trong cron, hãy thử những dòng sau đây trong một shell:

crontab -e 

Sau đó, trong crontab:

0 7 * * * DISPLAY=:0 /PATH/TO/SCRIPT 
+0

Thích ứng với nhu cầu của bạn, chắc chắn;) –

+0

Tôi đã thử tương tự nhưng dường như vẫn chạy ở chế độ nền. Cảm ơn câu trả lời của bạn anyway. – Neo

Các vấn đề liên quan