Android

Perintah nohup Linux

Command Line Interface - uname.avi

Command Line Interface - uname.avi

Daftar Isi:

Anonim

Perintah nohup menjalankan program lain yang ditentukan sebagai argumennya dan mengabaikan semua sinyal SIGHUP (hangup). SIGHUP adalah sinyal yang dikirim ke suatu proses ketika terminal pengendali ditutup.

Biasanya, ketika Anda menjalankan program melalui SSH, jika koneksi Anda turun atau Anda keluar, sesi diakhiri, dan semua proses yang dijalankan dari terminal akan berhenti. Di sinilah perintah nohup berguna. Itu mengabaikan semua sinyal hangup, dan proses akan terus berjalan.

Cara Menggunakan Perintah nohup

Sintaks untuk perintah nohup adalah sebagai berikut:

nohup COMMAND

Perintah tidak menerima opsi lain kecuali standar --help dan --version .

Mari kita lihat contoh berikut:

nohup mycommand

nohup: ignoring input and appending output to 'nohup.out'

nohup menjalankan perintah mycommand di latar depan dan mengalihkan output perintah ke file nohup.out . File ini dibuat di direktori kerja saat ini. Jika pengguna yang menjalankan perintah tidak memiliki izin tulis ke direktori kerja, file dibuat di direktori home pengguna.

Jika Anda keluar atau menutup terminal, prosesnya tidak dihentikan.

Menjalankan Perintah di Latar Belakang

Menggunakan nohup di latar depan tidak terlalu berguna karena Anda tidak akan dapat berinteraksi dengan shell sampai perintah selesai.

Untuk menjalankan perintah di latar belakang, tambahkan simbol & di akhir perintah:

nohup mycommand &

Output termasuk ID pekerjaan shell (dikelilingi dengan tanda kurung) dan ID proses:

25177

Anda dapat menggunakan ID pekerjaan untuk membawa perintah ke latar depan menggunakan perintah fg .

Jika karena alasan tertentu Anda ingin menghentikan proses, gunakan perintah kill diikuti oleh ID proses:

kill -9 25132

Mengarahkan Output ke File

Secara default, nohup mengalihkan output perintah ke file nohup.out . Jika Anda ingin mengarahkan output ke file yang berbeda, gunakan pengalihan shell standar.

Misalnya, untuk mengarahkan output standar dan kesalahan standar ke mycommand.out Anda akan menggunakan:

nohup mycommand > mycommand.out 2>&1 &

Untuk mengarahkan output standar dan kesalahan standar ke file yang berbeda:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternatif

Ada beberapa program alternatif yang dapat Anda gunakan untuk menghindari perintah untuk dihentikan ketika Anda menutup terminal atau terputus.

Layar

Layar atau Layar GNU adalah program terminal multiplexer yang memungkinkan Anda untuk memulai sesi layar dan membuka sejumlah jendela (terminal virtual) di dalam sesi itu. Proses yang berjalan di Layar akan terus berjalan ketika jendelanya tidak terlihat meskipun Anda terputus.

Tmux

Tmux adalah alternatif modern untuk layar GNU. Dengan Tmux, Anda juga dapat membuat sesi dan membuka banyak jendela di dalam sesi itu. Sesi Tmux persisten, yang berarti bahwa program yang berjalan di Tmux akan terus berjalan bahkan jika Anda menutup terminal.

Memungkiri

disown adalah shell bawaan yang menghapus pekerjaan shell dari kontrol pekerjaan shell. Tidak seperti nohup , Anda dapat menggunakan disown untuk menjalankan proses juga.

Kesimpulan

nohup memungkinkan Anda untuk mencegah perintah dihentikan ketika Anda keluar atau keluar dari terminal.

terminal nohup