2011-07-05 39 views
9

Tôi có lệnh này mà tôi chạy từ một thiết bị đầu cuối trong ubuntuLinux để chạy kịch bản trong khoảng thời gian

python2.5 /home/me/web/gae/google_appengine/dev_appserver.py /home/me/web/gae/APPLICATION/trunk 

tôi cần phải dừng hoạt động này và sau đó khởi động lại nó mỗi 10 giây - Tôi có thể chạy từ một. sh tập tin nếu cần thiết.

Cách tốt nhất để làm điều này là gì? Tôi muốn nó tất cả được trong một kịch bản nếu có thể như vậy không mà quan tâm về việc sử dụng cron công việc để chạy nó - chắc chắn có một số cách để làm một vòng lặp với một sự chậm trễ hoàn toàn trong một kịch bản shell?

Tương đương gần nhất tôi có thể nghĩ đến là JavaScript của setInterval(function(),10000);

+0

Tại sao không sử dụng cron? Có vẻ như công cụ thích hợp cho công việc này. – Sorpigal

Trả lời

14

Bạn có thể thử một cái gì đó như thế này:

while true; do 
    python2.5 /home/me/web/gae/google_appengine/dev_appserver.py /home/me/web/gae/APPLICATION/trunk & 
    sleep 10 
    kill $! 
done 

tức là .: Vòng mãi mãi (while true), hãy bắt đầu kịch bản python ở chế độ nền, chờ 10 giây (sleep 10) và tiêu diệt các tiến trình nền (kill $!).

1

sleepat nếu bạn không thích cron

echo "print after 3min again" 
sleep 180 # or sleep +3m 
echo "hello again, 3min passed" 

Đọc trang man, chơi với những người một chút, và tôi nghĩ rằng sẽ dễ dàng để xây dựng những gì bạn muốn, xung quanh những thứ đó.

2

Tôi thích ~ $ watch -n sec lệnh

i.E.

watch -n 10 ls /home/user/specialdata 

watch -n 30 csync /dir/A /remote/dir/B 
+0

Tôi nghĩ rằng điều này giả định rằng quá trình được theo dõi chấm dứt, trong khi OP đang chạy một quá trình máy chủ cần phải bị giết. Nhưng tôi đã không nhận thức của đồng hồ vì vậy cảm ơn cho tip-off. – contrebis

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