Membuat Aplikasi Berjalan Di Belakang (Background Process) Dalam Wakltu Tertentu (Timeout) | Menjalankan Aolikasi Dibelakang Layar

Firliya Menjalankan Aolikasi Dibelakang Layar Menjalankan Proses Dibelakang Background

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:

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:

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

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

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