Cara Menjalankan Perintah Bash di Latar Belakang di Linux

Tidak ada yang lebih mengganggu daripada menjalankan perintah di terminal Anda dan menjalankannya selama beberapa menit, terkadang berjam-jam, dan tidak dapat menggunakan terminal Anda lagi. Tentu, Anda dapat menggunakan tab, tetapi itu solusi yang kikuk, dan itu tidak selalu optimal karena Anda mungkin ingin melihat pembaruan saat Anda bekerja. Di sini kami menunjukkan kepada Anda beberapa cara berbeda untuk menjalankan perintah bash di latar belakang di Linux.

Akhiri Perintah dengan &

Jika Anda ingin mendorong perintah ke latar belakang, gunakan & pada akhirnya adalah cara mudah untuk melakukan itu. Dengan cara ini, Anda dapat mengeluarkan perintah di latar belakang dan terus menggunakan terminal Anda saat dijalankan. Itu datang dengan tangkapan. Menggunakan & tidak memutuskan perintah dari Anda; itu hanya mendorongnya ke latar belakang. Ini berarti bahwa saat Anda mencoba menggunakan terminal, apa pun yang ingin didorong oleh perintah tersebut STDOUT atau STDERR akan tetap dicetak, yang mungkin mengganggu.

Tangkapan Layar Dari 2021 01 14 16 21 23

Ketika sesi terminal ditutup, perintah berakhir. Anda juga dapat menghentikan perintah dengan mengeluarkan jobs perintah, menemukan nomor dari perintah yang berjalan, dan mematikannya dengan kill perintah. Sintaksnya adalah sebagai berikut:

Tangkapan Layar Dari 2021 01 14 16 21 48

Menggunakan & bagus jika Anda perlu mendorong sesuatu sebentar tetapi jangan berharap itu berlanjut selamanya.

& Setelah Perintah, Kemudian Disown It

Menjalankan perintah dengan hanya & mendorongnya ke belakang dan menjaganya tetap berjalan selama jendela terminal terbuka. Namun, jika Anda ingin menjaga perintah ini tetap berjalan, bahkan dengan sesi terminal Anda berakhir, Anda dapat menggunakan disown perintah.

Untuk menggunakan metode ini, mulailah dengan menambahkan &.

Seperti disebutkan di atas, menggunakan & mendorong perintah ini ke latar belakang tetapi tidak melepaskannya dari pengguna Anda. Anda dapat memverifikasi ini dengan mengetik jobs ke terminal. Ini akan menunjukkan perintah yang berjalan di latar belakang seperti yang kita lihat sebelumnya.

Ketik saja disown ke dalam cangkang, dan itu akan melakukan hal itu. (Dan Anda dapat sekali lagi memverifikasi ini dengan jobs perintah.)

Tangkapan Layar Dari 2021 01 14 16 26 01
Anda bisa melihat disown perintah di sana

Sekarang Anda dapat menutup terminal Anda dan melanjutkan hari Anda. Itu masih akan terus menyalurkan semuanya STDOUT atau STDERR, tetapi setelah Anda keluar dan membuka kembali terminal, Anda tidak akan melihat apa pun di sana. Anda dapat menemukan kembali perintah tersebut dengan top atau ps perintah dan membunuhnya dengan kill perintah.

Tangkapan Layar Dari 2021 01 14 16 28 42
Pekerjaan yang tidak diakui adalah yang kedua, dengan PID 16238.

& Setelah Perintah dengan / dev / null

Menambahkan & setelah sebuah perintah akan mendorong sebuah perintah ke latar belakang, tetapi sebagai hasilnya, perintah latar belakang akan terus mencetak pesan ke terminal saat Anda menggunakannya. Jika Anda ingin mencegah hal ini, pertimbangkan untuk mengalihkan perintah ke /dev/null.

Tangkapan Layar Dari 2021 01 14 16 31 33

Ini tidak mencegah perintah ditutup saat terminal ditutup. Namun, seperti yang disebutkan di atas, itu mungkin untuk digunakan disown untuk menyangkal perintah yang sedang berjalan dari pengguna. Anda juga dapat mematikannya dengan salah satu metode yang disebutkan di atas jika Anda tidak ingin menjalankannya lagi.

Nohup, dengan & dan / dev / null

Berbeda dengan perintah sebelumnya, menggunakan nohup memungkinkan Anda menjalankan perintah di latar belakang dan tetap menjalankannya. Bagaimana? nohup melewati sinyal HUP (sinyal ditutup), sehingga memungkinkan untuk menjalankan perintah di latar belakang bahkan saat terminal mati. Gabungkan perintah ini dengan pengalihan ke “/ dev / null” (untuk mencegah nohup membuat file nohup.out), dan semuanya masuk ke latar belakang dengan satu perintah.

Tangkapan Layar Dari 2021 01 14 16 32 43

Kebanyakan program terminal di Linux saat ini memiliki fitur bawaan untuk memungkinkannya berjalan di latar belakang dengan sedikit usaha. Bersamaan dengan itu, sistem init modern (seperti systemd) dapat memungkinkan pengguna untuk memulai program seperti layanan saat boot atau kapan pun.

Namun, beberapa program di Linux tidak memiliki kemampuan untuk dijalankan sebagai daemon atau berintegrasi dengan sistem init modern. Ini benar-benar ketidaknyamanan tetapi dapat dimengerti, karena tidak semua pengembang memiliki keahlian atau waktu untuk menambahkan fitur baru.

Untungnya, perintah seperti nohup atau disown masih menjadi kenyataan dan dapat menutup celah dalam memindahkan program seperti ini ke latar belakang. Mereka tidak sempurna atau mewah, tetapi mereka menyelesaikan pekerjaan saat dibutuhkan.

Jika Anda menikmati artikel Linux ini, pastikan untuk memeriksa beberapa konten Linux kami yang lain, seperti cara menghubungkan akun Google Anda ke GNOME Shell, 5 Distro Linux terbaik untuk Pengguna Windows pada tahun 2021, dan 15 perintah LS yang perlu Anda ketahui .

Terkait:

John Perkins
John Perkins

John adalah seorang profesional teknis muda dengan hasrat untuk mendidik pengguna tentang cara terbaik menggunakan teknologi mereka. Dia memegang sertifikasi teknis yang mencakup topik mulai dari perangkat keras komputer hingga keamanan siber hingga administrasi sistem Linux.

Apakah artikel ini bermanfaat?