Làm cách nào tôi có thể ngăn nohup tạo tệp ~ / nohup.out?


16

Tôi sử dụng lệnh $ nohup ...để khởi động một ứng dụng trong nền để sau đó tôi có thể đóng cửa sổ terminal.

Khi thực hiện nó tạo ra các tập tin ~/nohup.out.

Thí dụ:

orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'

Làm thế nào tôi có thể ngăn chặn nohuptạo ra nohup.out?


2
Bạn cũng có thể xem xét byobu. :)
Andrea Lazzarotto

Cảm ơn bạn, @AndreaLazzarotto! Bạn có thể cho tôi một ví dụ làm thế nào để sử dụng nó?
orschiro

2
Chà, tôi khuyên bạn nên xem video ở đây: byobu.co Về cơ bản, với những gì bạn muốn làm, bạn chỉ cần chạy byobu, bắt đầu bất cứ điều gì bạn muốn, sau đó nhấn F6và bạn đã hoàn thành. Bạn có thể quay lại với nó bằng cách chạy byobulại.
Andrea Lazzarotto

Thông minh! Bạn có thể muốn thêm điều này như một câu trả lời chính thức?
orschiro

Về mặt kỹ thuật, đề nghị của tôi không trả lời câu hỏi của bạn, nó chỉ là một thay thế. : D
Andrea Lazzarotto

Câu trả lời:


20

Bạn có thể chuyển hướng đầu ra bất cứ nơi nào bạn muốn, ví dụ:

nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1

chuyển hướng ngăn chặn tập tin đầu ra mặc định nohup.outđược tạo ra. /dev/nulllà sự lãng quên, vì vậy nếu bạn không muốn dữ liệu, hãy gửi nó ở đó.

Trong bash bạn có thể viết tắt >/dev/null 2>&1thành&>/dev/null

Đối với các chương trình tôi sử dụng thường xuyên, tôi tạo bí danh (và thêm nó vào .bashrc)

alias show_state='nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py" >/dev/null 2>&1'

Bây giờ tất cả tôi phải gõ là show_state


2
@orschiro: Sau một vài năm, nó sẽ không khó hiểu và bạn sẽ nhớ nó;) Tôi khuyên bạn nên gắn bó với nó, bởi vì bí danh nó đi có nghĩa là bạn sẽ không có được trải nghiệm đó và biết cách các nhà điều hành chuyển hướng BASH hoạt động hàng đầu đầu của bạn là một kỹ năng quan trọng.
Cuộc đua nhẹ nhàng với Monica

Điều này sẽ không tốt hơn như là một chức năng? Một cái gì đó như thế show_state () { /bin/bash -c "$@" &>/dev/null }nào? (Cảnh báo: cú pháp kém và có thể sẽ không hoạt động! Đó chỉ là một ví dụ!). Một nitpick: tại sao show_statekhi bạn vứt bỏ đầu ra của nohup?
Ismael Miguel

Tôi không biết kịch bản nào @IsmaelMiguel nhưng tôi cho rằng đó là một chỉ báo có biểu tượng khay, không in "trạng thái" (bất kể đó là gì) để xuất bản. Chắc chắn, một chức năng có thể thú vị hơn một bí danh ^. ^
Zanna

Ồ, tôi hiểu rồi! Xin lỗi, không thấy tên của .pytập tin. Và vâng, một chức năng là thú vị hơn. Tôi có chức năng viết kém này trên máy tính để bàn Debian : shutup() { source "$@" >/dev/null 2>&1 & }. Và nó hoạt động. Có lẽ bạn có thể đề xuất một cái gì đó tương tự, nhưng tốt hơn rất nhiều?
Ismael Miguel

Tôi không bao giờ biết rằng nó &>đã làm việc (và theo suy nghĩ của tôi, nó trông giống như nền tảng cộng với chuyển hướng xuất sắc). Tôi luôn học nó như là >&. Có chuẩn không?
Random832
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.