GNU/Linux >> Belajar Linux >  >> Linux

Perintah Nohup di Linux Memungkinkan Anda untuk Menjalankan Perintah Bahkan Setelah Keluar

Nohup adalah singkatan dari 'no hang up'. Ini adalah perintah yang sangat berguna untuk membuat proses Anda berjalan bahkan setelah Anda keluar.

Salah satu penggunaan yang paling umum dapat ditemukan dalam menjalankan perintah pengambilan waktu melalui koneksi SSH. Jika menurut Anda sesi SSH Anda mungkin turun, Anda dapat menggunakan perintah dengan nohup dengan cara ini:

nohup your_command &

Apa itu perintah nohup?

Nohup dapat dilihat sebagai pembungkus. Anda mengawali perintah Anda dengan nohup seperti ini:

nohup COMMAND ARGS ....

Tidak apa-apa tujuannya adalah untuk mencegat dan mencegah SIGHUP sinyal dari mencapai COMMAND .

Saat Anda mengawali perintah dengan nohup , input akan dialihkan dari file yang tidak dapat dibaca ( nohup COMMAND ). Dengan kata sederhana, jangan panggil perintah dengan nohup jika Anda perlu mengirim input ke perintah itu. Saat Anda nohup sebuah perintah, itu harus dapat dijalankan tanpa pengawasan.

Tidak apa-apa pertama-tama akan mencoba mengarahkan output ke ./nohup.out atau akan mengirimkannya ke ~/nohup.out jika perlu. Anda juga dapat memutuskan di mana mengarahkan output seperti ini:

nohup COMMANDS >/path/to/output/file

Tidak banyak yang bisa dikatakan tentang nohup , itu tidak memiliki daftar opsi yang panjang. Hanya ada –bantuan dan –versi .

Contoh penggunaan perintah nohup

Mengeksekusi skrip dengan nohup semudah ini.

nohup ./nhp.sh

Perhatikan bahwa nohup tidak memotong proses ke latar belakang. Tidak apa-apa hanya ada untuk mencegat SIGHUP sinyal. Setelah perintah berjalan, Anda dapat melanjutkan dan menutup terminal Anda. Ini akan memperingatkan Anda bahwa suatu proses sedang berjalan. Konfirmasikan bahwa Anda ingin membunuhnya.

Saat Anda menutup terminal, semua proses anak menerima sinyal SIGHUP. Nohup mencegah sinyal itu mencapai perintah saya. Gambar berikut menunjukkan informasi proses tentang perintah saya saat terminal masih berjalan.

Anda lihat PPIDnya? Itu adalah ID proses induk. Saat Anda meminta untuk menutup terminal, semua anak PPID menerima SIGHUP sinyal. Tidak apa-apa mencegah sinyal itu mencapai skrip kami. Proses induk dihentikan dan skrip kami menjadi yatim piatu. Saat sebuah proses menjadi yatim piatu, secara otomatis akan ditetapkan 1 (systemd atau init) sebagai induk.

Seperti yang Anda lihat, sebenarnya tidak sulit untuk mendemonstrasikan penggunaan nohup . Perintah yang sangat sederhana. Anda dapat memotong proses di latar belakang seperti ini:

nohup ./nhp.sh &

Anda juga dapat memutuskan ke mana output diarahkan seperti ini:

nohup ./nhp.sh >/path/to/file &

Perhatikan bahwa jika Anda mematikan atau mem-boot ulang sistem Linux, itu akan mematikan perintah. Saat Anda meminta shutdown atau reboot, semua proses menerima SIGTERM dan kemudian SIGKILL . Sinyal tersebut tidak dicegat oleh nohup .

Nohup melalui koneksi SSH

Satu kegunaan yang sering langsung muncul di benak Anda saat Anda mempelajari nohup adalah untuk dapat memulai proses pada komputer jarak jauh melalui SSH. Logikanya, menjalankan perintah dengan nohup akan memungkinkan Anda untuk keluar dari koneksi SSH Anda dan prosesnya akan tetap berjalan.

nohup COMMAND &

Salah satu masalah umum adalah terkadang SSH akan "hang" saat log off. Ini karena SSH akan sering menolak kehilangan aliran data apa pun ke dan dari proses latar belakang apa pun. Kemudian akan "hang" sampai proses dihentikan.

Masalah ini sering dapat diatasi dengan mengarahkan ketiga aliran data.

nohup COMMAND >./nohup.out 2>./nohup.err &

Saya harap artikel singkat ini membantu Anda menggunakan sesi SSH dengan lebih baik. Jika Anda memiliki pertanyaan atau saran, silakan tinggalkan komentar di bawah.


Linux
  1. 10 Penggunaan Simbol atau Operator (!) yang Menakjubkan dan Misterius di Perintah Linux

  2. 10 Perintah Mematikan yang Tidak Boleh Anda Jalankan di Linux

  3. Contoh Perintah Nohup – Menjalankan Perintah yang Terus Berjalan setelah Anda Keluar

  1. 10 perintah dasar Linux yang perlu Anda ketahui

  2. 4 tips untuk membantu Anda mendapatkan hasil maksimal dari perintah df Linux

  3. A sampai Z Perintah Linux

  1. Perintah gema Linux

  2. Linux:Jadwalkan perintah untuk dijalankan sekali setelah reboot (setara dengan RunOnce)

  3. Bagaimana cara menggunakan nohup untuk terus menjalankan perintah setelah pengguna logout?