Apa itu Nohup dan Bagaimana Cara Menggunakannya?

Ada banyak perintah yang tersedia di sistem Linux. Beberapa akan Anda gunakan berkali-kali dalam sehari, sementara yang lain umumnya disediakan untuk penggunaan khusus. nohup adalah salah satu perintah tersebut. Anda tidak akan menggunakannya setiap hari, tetapi Anda akan bersyukur bahwa itu ada saat Anda membutuhkannya. Di sini kami menunjukkan kepada Anda apa itu nohup dan bagaimana menggunakannya.

Apa itu Noup?

nohup adalah kependekan dari “No Hangups.” Itu bukan perintah yang Anda jalankan sendiri. nohup adalah perintah tambahan yang memberi tahu sistem Linux untuk tidak menghentikan perintah setelah dijalankan. Itu akan terus berjalan sampai selesai, bahkan jika pengguna yang memulainya keluar. Ini melayani tujuan yang agak mirip dengan tmux atau layar, memungkinkan Anda untuk memulai proses dan tidak khawatir apakah itu akan selesai jika Anda keluar atau terputus dari server Anda.

Sintaks untuk nohup sederhana dan terlihat seperti ini:

nohup sh skrip-Anda.sh &

Perhatikan & di akhir perintah. Itu memindahkan perintah ke latar belakang, mengembalikan Anda ke prompt di terminal yang sedang Anda kerjakan. Sering kali perintah masih melekat pada terminal, jadi Anda akan menghentikannya saat Anda menutup jendela yang terbuka dan mendahului perintah dengan nohup .

nohup bekerja dengan hampir semua perintah yang Anda jalankan di terminal. Itu dapat dijalankan dengan skrip khusus serta perintah sistem standar dan utilitas baris perintah. Gunakan itu untuk memulai skrip audit keamanan di server jarak jauh sehingga Anda dapat memutuskan sambungan dan pergi atau menjalankan pembaruan di latar belakang dan tidak menghentikannya untuk apa pun.

Kiat: lihat cara lain untuk menjalankan perintah bash di latar belakang.

Nohup.out

Karena nohup dapat tetap berjalan secara independen dari pengguna yang memulainya, perintah tersebut memerlukan suatu tempat untuk mengeluarkan pesan atau kesalahan apa pun. Karena tidak ada terminal untuk diasosiasikan dengannya, nohup mencatat semuanya ke file keluaran “nohup.out”

Secara default, file itu terletak di direktori mana pun Anda memulai perintah. “nohup.out” agak unik, karena berisi keluaran standar dan keluaran kesalahan. nohup mengalihkan keduanya ke file yang sama secara default.

Anda tidak perlu menggunakan “nohup.out”, meskipun – itu hanya default. Anda dapat menentukan keluaran khusus saat menjalankan nohup dan menempatkannya di lokasi khusus.

nohup sh skrip-Anda.sh > / path / ke / custom.out &

Output kustom berisi data yang sama dengan file “nohup.out” standar dan bagus untuk skrip audit keamanan yang disebutkan di atas. Anda dapat menamainya “audit-script-output.txt” di semacam folder jarak jauh yang terpasang dan melihat postur keamanan server tersebut dari kenyamanan laptop Anda sendiri daripada melihat melalui output kucing sepanjang hari.

Bahkan untuk pengguna normal sehari-hari, menentukan file keluaran khusus dapat berguna, karena memungkinkan Anda memiliki perbedaan yang jelas antara keluaran. Jika Anda menggunakan perintah ini beberapa kali dari folder default (beranda) tanpa menentukan file keluaran, “nohup.out” hanya akan menambahkan dirinya sendiri dengan semua keluaran, membuat sedikit berantakan. Jika Anda ingin membaca output perintah secara terorganisir, menentukan nama file khusus untuk setiap output memberi Anda sarana untuk melakukannya dengan cara Anda sendiri!

Bagaimana Nohup Berbeda dari Daemon?

Pada titik ini, Anda mungkin bertanya-tanya apa yang membedakan nohup dari proses daemonisasi. Lagi pula, keduanya tampaknya melayani tujuan yang relatif sama tetapi sebenarnya tidak.

Daemon berjalan terus menerus di latar belakang. Mereka paling baik dicadangkan untuk proses yang Anda tidak ingin keluar, seperti server. Mereka juga membutuhkan lebih banyak pekerjaan untuk diprogram, jadi mereka bukan yang terbaik untuk skrip satu kali yang sederhana.

nohup lebih merupakan perintah sekali pakai. Anggap saja sebagai skrip yang akan memakan waktu lama untuk dijalankan tetapi pada akhirnya akan tetap selesai. Mungkin ada tugas panjang dan rumit yang Anda jalankan sesekali yang membutuhkan waktu berjam-jam untuk menyelesaikannya. Anda tidak ingin membiarkan terminal terbuka atau pengguna masuk, jadi gunakan nohup untuk membuatnya tetap berjalan di latar belakang dan masukkan semua keluaran ke dalam file apa pun yang Anda pilih, apakah “nohup.out” default atau lokasi pilihanmu.

Menjalankan Proses Dengan Nohup

Untuk menjalankan proses dengan nohup , letakkan sebelum perintah apa pun yang Anda jalankan. Ini termasuk semua program normal yang akan Anda jalankan, seperti Discord, Steam, browser Anda, editor teks, atau aplikasi lain yang dapat Anda pikirkan.

Ingat, Anda harus melepaskan proses Anda dari prompt aktif sehingga Anda dapat menutup terminal tanpa tiba-tiba kehilangan prosesnya.

Misalnya, untuk membuka Kate (editor teks saya) di sistem saya dan melepaskannya dari terminal sambil menyimpan log dengan “kate.log”, saya akan mengetik ini:

nohup kate > kate.log &

Setelah menutup terminal, Kate masih berjalan.

Jika ada masalah saat memulai aplikasi, saya cukup menarik “kate.log” dan mencari tahu apa yang salah langsung dari terminal dengan:

cat kate.log

Proses ini berguna untuk menentukan apakah ada masalah dengan aplikasi yang menolak untuk memulai atau berperilaku tidak menentu. Saat Anda biasanya memulai program seperti browser Anda, sinyal kesalahannya sering kali diabaikan. Memulai mereka di terminal dengan nohup dan meneruskan hasilnya ke file log membantu memberikan gambaran yang lebih jelas tentang apa yang dapat menyebabkan masalah.

Menjalankan Banyak Perintah Dengan Nohup

Karena Anda dapat meneruskan perintah apa pun melalui nohup , Anda juga dapat meneruskan urutan perintah. Untuk melakukan ini dengan benar, Anda harus memanggil shell terlebih dahulu dan meneruskan perintah sebagai string, karena sebagian besar emulator terminal menginterpretasikan setiap perintah setelah yang pertama sebagai tidak didahului oleh nohup .

Setiap distro Linux modern telah menginstal bash, jadi kami mengabaikan shell khusus lainnya dan menggunakannya untuk contoh ini:

nohup pesta -C ‘perintah1 && perintah2’ &

Dalam perintah ini, kami memanggil bash untuk menjalankan perintah dan merantai mereka dengan double-ampersand (&&). Kami memberi tahu nohup untuk “Jalankan bash dengan flag -c (eksekusi) dan berikan string ini dikelilingi oleh tanda kutip tunggal.” Kemudian kami memberi tahu terminal untuk membebaskan prompt sementara seluruh urutan berjalan di latar belakang.

Pertanyaan yang Sering Diajukan

Aplikasi saya masih ditutup ketika saya menutup terminal. Apa yang harus saya lakukan?

Periksa kembali apakah Anda telah mengetik ampersand (&) setelah perintah Anda. Jika masih ditutup saat Anda menutup terminal, coba jalankan lagi. Kemudian, di baris baru, ketik: disown

Ini menghapus proses yang berjalan sepenuhnya dari daftar pekerjaan terminal. Dalam beberapa kasus, proses yang Anda mulai dengan nohup dan ampersand akan terus meminta masukan dan mendengarkan sinyal dari terminal. Saat terminal ditutup, jika aplikasi masih ada dalam daftar pekerjaan, terminal juga akan mengirimkan sinyal ke sana. Aplikasi juga akan ditutup jika menganggap sinyal terminal sebagai isyarat untuk menutup.

Menyangkalnya memastikan bahwa ini tidak terjadi.

Bagaimana dengan perintah yang membutuhkan kata sandi root dan input lainnya?

Kami tidak akan merekomendasikan menjalankan perintah yang memerlukan input terminal atau akses root melalui nohup . Jika Anda benar-benar harus melakukannya, baca manual untuk perintah yang ingin Anda jalankan dan lihat apakah ada opsi untuk melewatkan konfirmasi. Misalnya,. untuk menjalankan manajer paket di Arch Linux tanpa konfirmasi, gunakan flag –noconfirm .

Ini wilayah yang keruh dan berbahaya untuk akses root. Jika Anda bersikeras menjalankan perintah me
lalui nohup sebagai root, lakukan setelah memasukkan shell root dengan mengetikkan su di terminal Anda dan melakukannya. Anda akan sering menemukan bahwa aplikasi yang menginginkan kata sandi root Anda tidak bereaksi dengan baik terhadap hal ini.

Mengapa nohup mengarahkan ulang stderr ke stdout?

Ketika Anda menjalankan perintah melalui nohup , Anda akan mendapatkan output yang berbunyi: nohup: mengabaikan input dan mengarahkan stderr ke stdout

Artinya, Anda tidak lagi dapat mengirim input terminal ke perintah yang baru saja Anda jalankan, dan semua data yang biasanya dialirkan melalui terminal Anda akan dialihkan ke satu aliran tunggal (stdout), lalu dihasilkan menjadi file ( secara default, “nohup.out”).

Tangkapan layar untuk “Apa itu Nohup?” dan “Nohup.out” oleh John Perkins, dan untuk “Menjalankan Proses Dengan Nohup” oleh Miguel Leiva-Gomez.

Related Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *