Cara Menjalankan Perintah Linux di Background Lengkap

Cara Menjalankan Perintah Linux di Background Lengkap

Dengan Menjalankan Perintah Linux di Background, maka seorang user tidak perlu menunggu perintah berjalan di terminal selesai sebelum menutupnya.

Biasanya hal ini dibutuhkan apabila kamu sedang mencopy file besar dan membutuhkan waktu yang lama atua sedang menginstall sesuatu seperti menggunakan winetricks. Butuh waktu puluhan menit untuk menungu selesai.

Baca juga : Cara Install Nginx dan PHP untuk WordPress di Ubuntu 19.04 Bionic

Namun dengan menjalankan perintah tersebut dilatar belakang, maka kamu bisa menutup terminal kapanlun tanpa menunggu program itu selesai dijalankan.

Disini ada 3 cara yang biasanya saya gunakan, dan cara ketigalah yang saya suka gunakan.

Menjalankan Perintah Linux di Background Dengan Bg dan Fg

Cara pertama cukup simpel, dimana kamu tinggal menekan Ctrl+z saja setelah perintah dijalankan. Lalu kamu ketikan perintah bg untuk membawa perintah tadi di background.

Untuk menghentikan prosesnya kamu ketikan fg lalu kamu baru bisa menekan ctrl+c.

Cara ini saya nilai tidak efektif karena output stdout akan tetap berada di terminal jika dibelakang perintah tidak kita tambahkan > /dev/null.

Contohnya saja perintah ping 8.8.8.8 tanpa akhiran > /dev/null

yuyun@SteinsGate:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=246 time=42.9 ms
^Z  # posisi dimana saya menekan ctrl+z
[1]+  Stopped                 ping 8.8.8.8
yuyun@SteinsGate:~$ bg
[1]+ ping 8.8.8.8 &
yuyun@SteinsGate:~$ 64 bytes from 8.8.8.8: icmp_seq=2 ttl=246 time=50.0 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=246 time=45.7 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=246 time=56.10 ms
# posisi dimana saya menekan enter
yuyun@SteinsGate:~$ 64 bytes from 8.8.8.8: icmp_seq=5 ttl=246 time=57.4 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=246 time=45.5 ms
# posisi dimana saya menekan enter
yuyun@SteinsGate:~$ 64 bytes from 8.8.8.8: icmp_seq=7 ttl=246 time=50.10 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=246 time=51.2 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=246 time=40.7 ms
fg
ping 8.8.8.8
64 bytes from 8.8.8.8: icmp_seq=10 ttl=246 time=44.1 ms
64 bytes from 8.8.8.8: icmp_seq=11 ttl=246 time=43.7 ms
64 bytes from 8.8.8.8: icmp_seq=12 ttl=246 time=52.7 ms
# posisi dimana saya menekan CTRL+C
— 8.8.8.8 ping statistics —
12 packets transmitted, 12 received, 0% packet loss, time 39ms
rtt min/avg/max/mdev = 40.735/48.473/57.388/5.291 ms
^Cyuyun@SteinsGate:~$

Menjalankan Perintah Linux di Background Dengan Nohup &

Cara kedua adalah menggunakan perintah nohup. Kamu ketikan perintah nohup lalu diikuti perintah utama kamu lalu diakhiri dengan simbol &. Contohnya :

yuyun@SteinsGate:~$ nohup ping 8.8.8.8 &
[1] 15774

Untuk menghentikan perintah di background tersebut tinggal kamu ketikan :

nb: ganti yang merah berdasarkan pid yang keluar dari perintah nohup diatas.

yuyun@SteinsGate:~$ kill -9 15774

Tapi kedua cara diatas jika kamu lakukan dan kamu keluar dari terminal, maka kamu tidak akan bisa kembali lagi ke terminal foreground

Semisal saja perintah utama yang saya pakai ping dengan menggunakan salah satu dari kedua cara diatas lalu saya keluar dari terminal.

Maka ping akan berjalan secara silent dan kamu tidak bisa mengembalikan output ping tersebut ke terminal.

Jadi untuk menghentinkannya kamu tidak bisa menekan perintah ctrl+c, kamu harus mentrace proses nya dengan perintah ps aux, setelah mendapatkan pid nya maka kamu lakukan perintah kill -9 PID .

Contohnya :

yuyun@SteinsGate:~$ ps aux | grep -i ping
yuyun    15808  0.0  0.0  10268  1028 pts/2    S    20:33   0:00 ping 8.8.8.8
yuyun    15813  0.0  0.0   8992   908 pts/2    S+   20:33   0:00 grep –color=auto -i ping

Yang bertuliskan merah adalah pid dari perintah ping. Jadi untuk menghentikan perintah nohup tersebut, kamu ketikan :

yuyun@SteinsGate:~$ kill -9 15808

Screen

Cara ketiga ini merupakan cara menjalankan perintah linux di background dan bisa mengembalikannya ke foreground. Yaitu kamu butuh paket yang bernama screen.

Kamu bisa menginstall menggunakan apt-get install scfeen jika kamu berada pada distro ubuntu dan debian. Untuk distro lainnya kalian sesuikan saja sendiri.

Penggunaannya adalah, kamu ketikan perintah screen di paling depan perintah utama kamu, setelah perintah berjalan kamu pencet tombol ctrl+A+D.

Untuk kembali ke proses, kamu tinggal mengetikan perintah screen -r, jika background proses nya hanya 1 yang kamu jalankan melalui perintah screen.

Contohnya saya mengetikan perintah utama ping 8.8.8.8

yuyun@SteinsGate:~$ screen ping 8.8.8.8
[detached from 15842.pts-2.SteinsGate] # posisi dimana saya menekan CTRL+A+D

Setelah itu saya menutup terminal kemudian membuka lagi, lalu saya ketikan screen -r, setelah kembali ke perintah ping di terminal, saya menekan CTRL+C untuk menghentikannya

yuyun@SteinsGate:~$ screen -r
[screen is terminating] # posisi dimana saya menekan CTRL+C

Jika kamu menjalankan banyak perintah menggunakan screen, contohnya saya menjalankan 2 perintah background menggunakan screen.

yuyun@SteinsGate:~$ screen top
[detached from 15947.pts-2.SteinsGate]
yuyun@SteinsGate:~$ screen ping 8.8.8.8
[detached from 15952.pts-2.SteinsGate]
yuyun@SteinsGate:~$

Setelah itu saya keluar dari terminal dan membuka terminal baru.

Lalu saya ketikan screen -r maka akan mengeluarkan output :

yuyun@SteinsGate:~$ screen -r
There are several suitable screens on:
15947.pts-2.SteinsGate (05/10/19 20:13:43) (Detached)
15952.pts-2.SteinsGate (05/10/19 20:13:32) (Detached)
Type “screen [-d] -r [pid.]tty.host” to resume one of them.

Kamu tinggal ketikan saja

yuyun@SteinsGate:~$ screen -r 15947.pts-2.SteinsGate

untuk menampilkan kembali perintah top ke terminal lalu menghentikannya menggunakan CTRL+C.

Jika proses tinggal satu kamu hanya perlu mengetikan perintah screen -r saja untuk kembali ke terminal dengan perintah ping lalu menghentikannya.

Jika tidak ada proses background yang dibuat oleh screen, maka output scren -r adalah

yuyun@SteinsGate:~$ screen -r
There is no screen to be resumed.

END

Baiklah semoga artikel ini bermanfaat jangan lupa share untuk pengguna linuxer agar mereka tahu banyak tentang linux. Sampai jumpa 😀

1 Komentar

  1. Pingback: Cara Mengaktifkan Hardware Acceleration Chromium di Linux Ubuntu

Tinggalkan Balasan