Có cách nào để chuyển hướng đầu ra nohup sang tệp nhật ký khác với nohup.out không?


112

Tôi thường xuyên sử dụng chương trình nohupđể các quy trình của tôi miễn nhiễm với hangouts. Vì vậy, nếu tôi muốn làm cho chương trình programmiễn nhiễm với hangouts, tôi sử dụng lệnh

nohup program &

nơi &đặt quá trình trong nền.

Khi bắt đầu, hãy nohupcho tôi thông báo:

nohup: nối thêm đầu ra vào `nohup.out '

Có cách nào để gửi đầu ra đến một tập tin khác nohup.outkhông? Thường thì tôi muốn chạy nhiều tiến trình trong cùng một thư mục bằng cách sử dụng nohup, nhưng nếu tôi làm điều này, tất cả các đầu ra sẽ được gộp lại trong một nohup.outtệp duy nhất .

Trang hướng dẫn (ví dụ, ở đây ) dường như không có tùy chọn để chỉ định tệp nhật ký. Bạn có thể vui lòng xác nhận điều này? Ngoài ra, bạn có suy nghĩ gì về cách tôi có thể giải quyết vấn đề này không?


3
Một năm muộn, nhưng một câu trả lời toàn diện tốt đã được đưa ra ở đây: stackoverflow.com/questions/4549361/iêu
Rahul Jha

Câu trả lời:


132

nohupTrang man GNU coreutils chỉ ra rằng bạn có thể sử dụng chuyển hướng bình thường:

Nếu đầu vào tiêu chuẩn là một thiết bị đầu cuối, hãy chuyển hướng nó từ / dev / null. Nếu đầu ra tiêu chuẩn là một thiết bị đầu cuối, hãy nối đầu ra vào 'nohup.out' nếu có thể, '$ HOME / nohup.out' nếu không. Nếu lỗi tiêu chuẩn là một thiết bị đầu cuối, chuyển hướng nó đến đầu ra tiêu chuẩn. Để lưu đầu ra vào TẬP_TIN, hãy sử dụng 'nohup THÔNG TIN> TẬP_TIN'.

Chỉnh sửa: Tôi đã không đọc liên kết của bạn lúc đầu; bạn có thể có một phiên bản khác nohup, mặc dù phần này cho thấy bạn vẫn có thể sử dụng chuyển hướng bình thường:

 nohup.out          The output file of the nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

Bạn có thể chuyển hướng đầu ra tiêu chuẩn và lỗi tiêu chuẩn sang các tệp khác nhau:

nohup myprogram > myprogram.out 2> myprogram.err

hoặc vào cùng một tệp:

nohup myprogram > myprogram.out 2>&1

54
Để trả lời cụ thể: sử dụng nohup program > program.out &để viết đầu ra program.outthay vìnohup.out
Jim Paris

4
Và điều này không đặc trưng cho các tiện ích GNU, hành vi được chỉ định bởi POSIX.
Gilles

3
Nó dường như không hoạt động. Nó chuyển hướng đầu ra của lệnh nohup thay vì đầu ra của myprogram.
Kris

2
@Kris Chuyển hướng nên diễn ra trước &nhân vật dấu
yunzen
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.