<![CDATA[Latest posts for the topic "kill 1 process chạy quá thời gian"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net kill 1 process chạy quá thời gian Code:
xxx -c "./a.sh" -t 5 (chạy a.sh trong tối đa 5s)
Cảm ơn]]>
/hvaonline/posts/list/21939.html#130425 /hvaonline/posts/list/21939.html#130425 GMT
kill 1 process chạy quá thời gian

3do wrote:
Tôi có 1 script a.sh, có lệnh nào trong linux chạy script trên và tự động kill nó nếu nó chạy quá 1 khảong thời gian nào đó ko? kiểu Code:
xxx -c "./a.sh" -t 5 (chạy a.sh trong tối đa 5s)
Cảm ơn 
Bạn có thể đọc: + man at + man sleep sau đó tự viết một cái]]>
/hvaonline/posts/list/21939.html#130428 /hvaonline/posts/list/21939.html#130428 GMT
Re: kill 1 process chạy quá thời gian /hvaonline/posts/list/21939.html#130430 /hvaonline/posts/list/21939.html#130430 GMT Re: kill 1 process chạy quá thời gian

3do wrote:
xin hỏi làm thế nào để chạy 1 script 
$ bash <script_name> $ sh <script_name> $ ./<script_name>

3do wrote:
... và lấy proccess id của nó sau khi chạy? 
$ man pidof $ ps aux | grep <script_name> | awk '{print $2}' ]]>
/hvaonline/posts/list/21939.html#130432 /hvaonline/posts/list/21939.html#130432 GMT
Re: kill 1 process chạy quá thời gian /hvaonline/posts/list/21939.html#130436 /hvaonline/posts/list/21939.html#130436 GMT Re: kill 1 process chạy quá thời gian /hvaonline/posts/list/21939.html#130445 /hvaonline/posts/list/21939.html#130445 GMT Re: kill 1 process chạy quá thời gian

3do wrote:
tôi không nói ý này. trong hệ thống của tôi có nhiều proccess trùng tên với proccess đó nên ko dùng pidof đc. 
Bạn thử tham khảo đoạn này xem: Code:
runtime=${1:-5m}
mypid=$$
bash a.sh &
pid_of_a=$!
sleep $runtime
kill -s SIGTERM $pid_of_a
Lưu lại với tên bất kỳ, sau đó chạy ở chế độ "debug" với tùy chọn -x để xem nó làm việc theo từng bước: Code:
$ bash -x <script_name>
]]>
/hvaonline/posts/list/21939.html#130447 /hvaonline/posts/list/21939.html#130447 GMT
Re: kill 1 process chạy quá thời gian /hvaonline/posts/list/21939.html#130453 /hvaonline/posts/list/21939.html#130453 GMT Re: kill 1 process chạy quá thời gian ./a.sh thì nó có chạy như một background process không, tức là: + hiểu nôm na như những services được viết dưới dạng init script (httpd, tomcat, oracle ...). Sau khi gõ /etc/init.d/tomcat start chẳng hạn, nó start lên, và chạy như một background process, rồi trả về command prompt của shell. + hay là: script a.sh của bạn, khi chạy sẽ dừng ở đâu đó mà không trả về command prompt của shell, nhấn Ctrl + C, process này sẽ bị kill.

3do wrote:
cảm ơn bạn. Còn 1 câu hỏi nữa là nếu a.sh chạy xong trước thời gian qui định thì có cách nào để stop script đang sleep kia không? 
+ Làm sao biết a.sh đã chạy xong? + Chắc là chỉ có cách nhấn Ctrl + C]]>
/hvaonline/posts/list/21939.html#130461 /hvaonline/posts/list/21939.html#130461 GMT
Re: kill 1 process chạy quá thời gian /hvaonline/posts/list/21939.html#130474 /hvaonline/posts/list/21939.html#130474 GMT Re: kill 1 process chạy quá thời gian

3do wrote:
script a.sh chạy xong khi trong hệ thống ko còn proccess id của nó nữa. Như vậy cần sleep từng giây cho đến khi hết thời gian hạn định, mỗi lần sleep xong thì check xem proccess id đó có còn hay không. Vấn đề là mình ko biết cách nào để check 1 proccess id có tồn tại hay không :-/  
$ ps -p <process_ID> | grep <process_ID> | wc -l hoặc: $ ps -eo pid | grep <process_ID> (nhớ dùng ^ và $ để chặn đầu cuối)]]>
/hvaonline/posts/list/21939.html#130489 /hvaonline/posts/list/21939.html#130489 GMT