Home > IT > Linux terminal hang on exit

Linux terminal hang on exit

June 4, 2008

Đôi khi có một script – thường là người khác viết, nó chạy giống như là một service – có nghĩa là chạy không ngừng. Một khi chạy rồi mà mình muốn thoát khỏi cái terminal là bị treo luôn? Làm sao để tránh khỏi tình trạng này?

Thật ra không phải là terminal treo, nó vẫn … còn đó … chờ cái process kia kết thúc. Nhưng nó đâu có biết là phải chờ trong vô vọng.

Ví dụ, một script như thế này:

#!/bin/bash

while true

do

sleep 3

done

nó sẽ không co điều kiện dừng.

Giả sử mình cho nó chạy background nhé:

./myscript.sh &

Giờ bạn thử

exit

sẽ thấy như cái terminal của mình treo vậy. Thật ra nó không treo, bạn có thể mở một terminal khác vào kill cái script lúc nãy đi là nó sẽ OK liền.

Hồi còn làm ở ZVC, mình đã gặp trường hợp này khi làm việc với Aldec Farm. Giờ lại gặp nữa, vẫn chưa có cách nào hay hơn, nhưng nói chung là có thể giải quyết được vấn đề.

Sau đây là 2 cách để chúng ta có thể exit khỏi shell một cách êm ả:

Cách 1: Theo  SSH: The Secure Shell (The Definitive Guide)

./myscript.sh < /dev/null >& /dev/null &

Cách 2: Sử dụng nohup (No Hang Up)

nohup ./myscript.sh &

Ai có cách nào hay hơn thì xin thọ giáo!

Categories: IT Tags: , , , , , ,
  1. April 3, 2009 at 2:12 PM

    Control+Alt+BackSpace
    :)) :)) :)) :)) :)) :)) :)) :)) :)) :)) :)) :))
    :D
    Hay !

  1. No trackbacks yet.
Comments are closed.
%d bloggers like this: