Membuat Aplikasi Berjalan Di Belakang (Background Process) Dalam Wakltu Tertentu (Timeout)

Dalam mengelola server linux, terkadang kita perlu untuk menjalankan sebuah aplikasi di belakang layar (background process) agar pekerjaan utama tidak terganggu. Linux memudahkan kita untuk melakukan hal tersebut, caranya hanya dengan menambahkan beberapa directive di belakang command yang sedang berjalan, tepatnya directive “> /dev/null 2>/dev/null &” setelah command yang ingin kita jalankan di belakang layar.

Contohnya:

rsync -azv /local/directory/ /remote/directory > /dev/null 2>/dev/null &

Penjelasan Command

Command di atas mendapatkan tiga tambahan directive, yakni:

  • > /dev/null, ini gunanya untuk membuat output process normal (>) dari layar menjadi hilang (/dev/null)
  • 2>/dev/null, ini gunanya untuk membuat output process error (2>) dari layar menjadi hilang (/dev/null)
  • &, ini gunanya untuk membuat output process berjalan di belakang layar

Untuk menjalankan process di belakang layar pada script bash, hanya perlu directive terakhir (&), adapun pada scripts php yang melakukan fungsi exec () ketiganya harus dipakai agar hasil proses benar-benar berjalan di atas layar

Setting Timeout

Adapun jika kita ingin process yang berjalan di belakang layar hanya berjalan dalam beberapa waktu tertentu, kita bisa gunakan command “timeout [detik]” di depan process yg akan kita lakukan.

Kita ambil lagi contoh command di atas:

timeout 3600 rsync -azv /local/directory/ /remote/directory > /dev/null 2>/dev/null &

Perhatikan ada command “timeout 3600” di depan command rsync. Hal ini menyebabkan command di belakangnya (rsync) menjadi hanya akan berjalan selama maksimal 3600 detik (1 jam) dan berjalan di belakang layar

Mengecek Proses Yang Berjalan dengan Pgrep

Gunakan saja command pgrep, misalnya command rsync

pgrep -l 'rsync'

Atau untuk melihat list process rsync dari user tertentu, gunakan:

pgrep -l -G thisuser namacommand

Referensi

https://stackoverflow.com/questions/12842767/php-background-process-using-exec-function

https://stackoverflow.com/questions/8961470/how-to-make-shell-exec-run-in-background-while-php-continues

https://linux.die.net/man/1/timeout

https://en.wikipedia.org/wiki/Pgrep


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *