2012-05-14 31 views
5

tôi thực hiện một kịch bản perl trong nền bằng cách sử dụng lệnh sauUnix quá trình nền STOPPED bất thường

nohup perl myPerlSCript.pl >debug_log & 

Sau vài phút, tôi có tình trạng như

[1] + Stopped

Tôi đã không mong đợi nó dừng lại, và tôi cũng không biết điều gì đã dừng nó lại. Làm thế nào tôi có thể gỡ lỗi này và tìm hiểu lý do tại sao nó dừng lại? Tôi thực sự quan tâm đến việc biết các lệnh unix để gỡ lỗi.

Trả lời

1

Bạn có sử dụng tcsh bất kỳ cơ hội nào không? Tcsh thực sự đi kèm với một lệnh nohup tích hợp mà tôi đã gặp phải rất nhiều vấn đề với trước đây, nhìn thấy hành vi chính xác mà bạn đang thấy.

Hãy thử sử dụng trực tiếp /usr/bin/nohup nếu đúng như vậy.

+0

Không, tôi không sử dụng tcsh. Nó là bash. – user703555

3

Có một số cách mà quy trình chạy trong nền có thể dừng lại. Tất cả trong số họ liên quan đến một trong những tín hiệu:

  • SIGSTOP
  • SIGTSTP
  • SIGTTOU
  • SIGTTIN

SIGSTOP là nghiêm trọng. Đó là không thể bỏ chặn, không đáng yêu, không thể chấp nhận. Nó dừng quá trình như chắc chắn là SIGKILL sẽ giết nó. Những người khác có thể được xử lý bởi quá trình nền để ngăn chặn dừng lại.

  • Một tín hiệu được gửi bởi một tiến trình khác sử dụng kill(2), hoặc do quá trình để tự sử dụng raise(3) hoặc kill(2)
  • Quá trình này đã cố gắng để viết thư cho các thiết bị đầu cuối, và các tùy chọn thiết bị đầu cuối tostop được kích hoạt (xem đầu ra của stty -a). Điều này tạo ra SIGTTOU.
  • Quy trình đã cố gắng thay đổi chế độ đầu cuối bằng tcsetattr(3) hoặc tương đương ioctl. (Đây là những chế độ tương tự được hiển thị bởi stty.) Điều này tạo ra SIGTTOU bất kể trạng thái hiện tại của cờ tostop.
  • Quy trình đã cố gắng đọc từ thiết bị đầu cuối. Điều này tạo ra SIGTTIN.

Danh sách này có thể rất không đầy đủ.

+0

Cảm ơn - liệu có thể thấy tín hiệu nào trong số những tín hiệu này gây ra '[1] + dừng lại ít nhất? – Rup

+1

chạy nó trong zsh thay vì bash, nó sẽ cung cấp cho bạn một thông báo chi tiết hơn. bash in "Ngưng" cho tất cả 4 người trong số họ. –

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