Trường hợp STDOUT của một chương trình bị từ chối hướng đến?


11

Theo dõi câu hỏi này , tôi muốn biết STDOUT và STDERR của chương trình mà tôi đã chạy disown -hđược chuyển hướng đến đâu.

Câu trả lời:


10

disownkhông thay đổi chương trình STDOUT / ERR. Họ vẫn sẽ đi đến bất cứ nơi nào bạn chuyển hướng họ (sử dụng, >v.v.). Nếu bạn không chuyển hướng chúng, chúng sẽ tiếp tục đi vào thiết bị đầu cuối mà bạn đã khởi động chương trình từ đó (cho đến khi bạn đóng thiết bị đầu cuối đó, trong trường hợp đó chúng sẽ bị loại bỏ).

Để minh họa, hãy chạy cái này trong một thiết bị đầu cuối:

bash -c 'while true; do sleep 1; echo hi; done' &

Điều này sẽ in "hi" mỗi giây (và làm phiền bạn khủng khiếp ;-)). Nếu bạn disownchương trình sau khi bắt đầu, "hi" sẽ tiếp tục. Bạn cần tìm PID của shell (sử dụng ví dụ ps) và giết nó để làm cho nó dừng lại.

Biên tập:

Dựa trên các nhận xét, có thể điều bạn thực sự muốn làm là khôi phục đầu ra của chương trình sau khi bạn chỉnh sửa disownvà đóng thiết bị đầu cuối mà nó đang chạy. Điều này được giải thích trong câu hỏi này: Không có từ xa thực tế với tcsh ( nhờ quixote quackote).


Theo câu hỏi trước đó của anh ấy, thực tế là anh ấy đã đóng thiết bị đầu cuối trước đó. Làm thế nào anh ta có thể nhận được đầu ra, sau đó?
Gnoupi

@Gnoupi: Tôi không nghĩ có cách nào để lấy lại đầu ra. Ít nhất là tôi chưa bao giờ nghe thấy bất kỳ cách nào.
sleske

Cảm ơn vì nhận xét Gnoupi :-) Trong thực tế, đầu ra không tìm thấy ở đâu. Tôi sẽ tiếp tục tìm kiếm mặc dù :-)
Thrawn

1
Đây thực sự là câu trả lời: từ chối không thay đổi bất cứ điều gì; bạn cần thiết lập bất kỳ chụp hoặc chuyển hướng khi bạn bắt đầu quá trình . nếu bạn cần nó sau đó, gdb là người bạn (duy nhất) của bạn: superuser.com/questions/50058/ mẹo
quack quixote

@quack - Tôi sẽ nói rằng câu hỏi cần tái cấu trúc, sau đó, để nhấn mạnh vào trường hợp sử dụng thực tế, thay vì chỉ công cụ. Trong hình thức hiện tại (tập trung vào từ chối), đây thực sự là câu trả lời chính xác. Nhưng từ bối cảnh, với câu hỏi trước đó, người dùng chỉ muốn khôi phục đầu ra và trong trường hợp này, liên kết của bạn là câu trả lời.
Gnoupi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.