Process Management — Terminal

Process Management Setiap program yang berjalan di komputer adalah sebuah process. Sebagai developer, kamu perlu bisa melihat, mengontrol, dan menghentikan pros

Process Management

Setiap program yang berjalan di komputer adalah sebuah process. Sebagai developer, kamu perlu bisa melihat, mengontrol, dan menghentikan proses.

Melihat Proses

# Proses milik user saat ini
ps
#   PID TTY          TIME CMD
#  1234 pts/0    00:00:00 bash
#  5678 pts/0    00:00:01 node

# Semua proses dengan detail
ps aux
# USER  PID  %CPU  %MEM    VSZ   RSS TTY  STAT START  TIME COMMAND
# budi  1234  0.0   0.1  12345  6789 pts/0 S   10:00  0:00 node app.js

# Hanya proses tertentu
ps aux | grep node
# budi  1234  0.5  1.2  54321  12345 pts/0 S 10:00 0:01 node app.js

top & htop — Monitor Real-time

# Monitor proses secara live
top
# Tekan q untuk keluar

# htop — versi yang lebih user-friendly (perlu install)
htop

Di dalam top:

Menghentikan Proses

# Kill berdasarkan PID
kill 1234

# Force kill (jika kill biasa tidak berhasil)
kill -9 1234

# Kill berdasarkan nama
killall node

# Kill berdasarkan port (sangat berguna!)
# Cari PID dari port 3000
lsof -i :3000
# COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
# node    1234 budi   23u  IPv6 98765      0t0  TCP *:3000

# Lalu kill PID-nya
kill 1234

# Atau shortcut: kill proses di port tertentu
kill $(lsof -t -i:3000)

Background & Foreground

# Jalankan di background (tambahkan &)
npm run dev &
# [1] 1234  (job number dan PID)

# Lihat job yang berjalan di background
jobs
# [1]+  Running  npm run dev &

# Bawa ke foreground
fg %1

# Kirim ke background (dari foreground, Ctrl+Z dulu)
# Ctrl+Z — suspend/pause proses
bg %1   — lanjutkan di background

# Jalankan perintah yang tidak terpengaruh terminal ditutup
nohup npm run build &
# Output disimpan di nohup.out

Signal

Signal adalah cara berkomunikasi dengan proses:

Signal Nomor Arti
SIGTERM 15 Minta berhenti dengan baik (default kill)
SIGKILL 9 Paksa berhenti (tidak bisa ditangkap)
SIGINT 2 Interrupt (Ctrl+C)
SIGSTOP 19 Pause proses (Ctrl+Z)
SIGHUP 1 Terminal ditutup
kill -SIGTERM 1234  # Sama dengan: kill 1234
kill -SIGKILL 1234  # Sama dengan: kill -9 1234

Port Management

# Cek port mana yang sedang digunakan
lsof -i -P -n | grep LISTEN

# Cek port tertentu
lsof -i :3000
lsof -i :8080

# Alternatif: gunakan ss (Linux) atau netstat
ss -tulpn | grep 3000
netstat -tulpn | grep 3000

Contoh Workflow Developer

# Dev server tidak mau berhenti? Force kill
kill $(lsof -t -i:3000)

# Jalankan 2 server sekaligus
npm run dev &
php artisan serve &

# Lihat semua job
jobs -l

# Monitor resource saat development
htop

# Jalankan build yang lama, tutup terminal tetap jalan
nohup npm run build > build.log 2>&1 &

Yang akan kamu pelajari