Dalam panduan ini, kami akan menjelaskan konsep sederhana namun penting dalam penanganan proses di sistem Linux, yaitu bagaimana melepaskan proses sepenuhnya dari terminal pengontrolnya.
Ketika sebuah proses diasosiasikan dengan terminal, dua masalah mungkin terjadi:
- terminal pengontrol Anda dipenuhi dengan begitu banyak data keluaran dan pesan kesalahan/diagnostik.
- jika terminal ditutup, proses bersama dengan proses turunannya akan dihentikan.
Untuk menangani dua masalah ini, Anda harus benar-benar melepaskan proses dari terminal pengontrol. Sebelum kita benar-benar bergerak untuk memecahkan masalah, mari kita bahas secara singkat cara menjalankan proses di latar belakang.
Cara Memulai Proses atau Perintah Linux di Latar Belakang
Jika suatu proses sudah di eksekusi, seperti contoh perintah tar di bawah ini, cukup tekan Ctrl+Z
untuk menghentikannya maka masukkan perintah bg
untuk melanjutkan eksekusinya di latar belakang sebagai tugas.
Anda dapat melihat semua pekerjaan latar belakang Anda dengan mengetikkan jobs
. Namun, stdin , stdout , stderr masih bergabung ke terminal.
$ tar -czf home.tar.gz . $ bg $ jobs
Anda juga dapat menjalankan proses langsung dari latar belakang menggunakan ampersand, &
tanda.
$ tar -czf home.tar.gz . & $ jobs
Lihat contoh di bawah ini, meskipun perintah tar dimulai sebagai pekerjaan latar belakang, pesan kesalahan masih dikirim ke terminal yang berarti prosesnya masih terhubung ke terminal pengontrol.
$ tar -czf home.tar.gz . & $ jobs
Jaga Proses Linux Tetap Berjalan Setelah Keluar dari Terminal
Kami akan menggunakan disown perintah, digunakan setelah proses diluncurkan dan diletakkan di latar belakang, ini berfungsi untuk menghapus pekerjaan shell dari pekerjaan daftar aktif shell, oleh karena itu Anda tidak akan menggunakan fg
, bg
perintah pada pekerjaan tertentu lagi.
Selain itu, saat Anda menutup terminal pengontrol, pekerjaan tidak akan hang atau mengirim SIGHUP untuk pekerjaan anak mana pun.
Disarankan Baca: 5 Cara agar Sesi dan Proses SSH Jarak Jauh Tetap Berjalan
Mari kita lihat contoh penggunaan diswon di bawah ini fungsi bawaan bash.
$ sudo rsync Templates/* /var/www/html/files/ & $ jobs $ disown -h %1 $ jobs
Anda juga dapat menggunakan nohup
perintah, yang juga memungkinkan proses untuk terus berjalan di latar belakang saat pengguna keluar dari shell.
$ nohup tar -czf iso.tar.gz Templates/* & $ jobs
Melepaskan Proses Linux Dari Terminal Kontrol
Oleh karena itu, untuk sepenuhnya melepaskan proses dari terminal pengontrol, gunakan format perintah di bawah ini, ini lebih efektif untuk antarmuka pengguna grafis (GUI ) aplikasi seperti firefox:
$ firefox </dev/null &>/dev/null &
Di Linux, /dev/null adalah file perangkat khusus yang menghapus (menghapus) semua data yang ditulis padanya, dalam perintah di atas, input dibaca dari, dan output dikirim ke /dev/null .
Disarankan Baca: 10 Contoh Perintah Layar untuk Melepaskan Sesi Terminal
Sebagai kesimpulan, asalkan suatu proses terhubung ke terminal pengontrol, sebagai pengguna, Anda akan melihat beberapa jalur keluaran dari data proses serta pesan kesalahan di terminal Anda. Sekali lagi, ketika Anda menutup terminal pengontrol, proses dan proses anak Anda akan dihentikan.
Yang penting, untuk pertanyaan atau komentar apa pun tentang masalah ini, hubungi kami dengan menggunakan formulir komentar di bawah.