Bagaimana saya bisa mencegah nohup membuat file ~ / nohup.out?


16

Saya menggunakan perintah $ nohup ...untuk memulai aplikasi di latar belakang sehingga saya bisa menutup jendela terminal sesudahnya.

Setelah dieksekusi itu menciptakan file ~/nohup.out.

Contoh:

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

Bagaimana saya mencegah nohupmembuat nohup.out?


2
Anda mungkin juga mempertimbangkannya byobu. :)
Andrea Lazzarotto

Terima kasih, @AndreaLazzarotto! Bisakah Anda memberi saya contoh cara menggunakannya?
orschiro

2
Nah, saya sarankan Anda melihat videonya di sini: byobu.co Pada dasarnya, untuk apa yang ingin Anda lakukan, Anda jalankan saja byobu, mulailah apa pun yang Anda inginkan, kemudian tekan F6dan Anda selesai. Anda dapat kembali ke sana dengan berlari byobulagi.
Andrea Lazzarotto

Luar biasa! Anda mungkin ingin menambahkan ini sebagai jawaban resmi?
orschiro

Secara teknis, saran saya tidak menjawab pertanyaan Anda sama sekali, itu hanya sebuah alternatif. : D
Andrea Lazzarotto

Jawaban:


20

Anda dapat mengarahkan output di mana saja Anda suka, misalnya:

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

redirection mencegah file output default nohup.outdibuat. /dev/nullterlupakan, jadi jika Anda tidak ingin data sama sekali, kirim ke sana.

Di bash Anda dapat menyingkat >/dev/null 2>&1ke&>/dev/null

Untuk program yang saya gunakan sering saya membuat alias (dan menambahkannya ke saya .bashrc) misalnya

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

Sekarang yang harus saya ketik adalah show_state


2
@orschiro: Setelah beberapa tahun, itu tidak akan samar dan Anda akan mengingatnya;) Saya sarankan tetap menggunakannya, karena mengenyahkannya berarti Anda tidak akan mendapatkan pengalaman itu, dan mengetahui bagaimana operator pengalihan BASH bekerja dari atas kepala Anda adalah keterampilan penting.
Lightness Races dengan Monica

Bukankah ini lebih baik sebagai fungsi? Sesuatu seperti show_state () { /bin/bash -c "$@" &>/dev/null }? (Peringatan: sintaksis yang buruk dan mungkin tidak akan berfungsi! Ini hanya contoh!). Satu nitpick: mengapa show_stateketika Anda membuang output nohup?
Ismael Miguel

Saya tidak tahu apa yang dilakukan skrip @IsmaelMiguel tapi saya menganggap itu adalah indikator dengan ikon baki, bukan untuk mencetak "status" (apa pun itu) ke stdout. Tentu, fungsi mungkin lebih menyenangkan daripada alias ^. ^
Zanna

Oh saya mengerti! Maaf, tidak melihat nama .pyfile. Dan ya, suatu fungsi lebih menyenangkan. Saya memiliki fungsi ini ditulis buruk pada desktop Debian: shutup() { source "$@" >/dev/null 2>&1 & }. Dan itu berhasil. Mungkin Anda bisa menyarankan sesuatu yang serupa, tetapi jauh lebih baik?
Ismael Miguel

Saya tidak pernah tahu bahwa itu &>berhasil (dan menurut saya itu terlihat seperti latar belakang ditambah pengalihan stdout). Saya selalu mempelajarinya sebagai >&. Apakah ini standar?
Random832
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.