Setiap program yang berjalan dalam sistem operasi disebut sebagai proses. Memahami bagaimana mengelola proses adalah keterampilan fundamental bagi administrator sistem.
Importance: Kemampuan mengelola proses essential untuk memastikan kinerja sistem yang optimal, troubleshooting masalah, dan menjaga stabilitas sistem.
Performance
Optimal resource usage
Troubleshooting
Identify issues quickly
Security
Monitor suspicious activity
Stability
Maintain system reliability
2. Konsep Dasar Proses
Definisi Proses
Program yang sedang dieksekusi
Memiliki PID (Process ID) yang unik
Mengonsumsi resource (CPU, memory, I/O)
Memiliki environment dan konteks eksekusi
Process vs Program
Program
Kode biner di disk
/usr/bin/ls
Process
Instance di memory
PID: 1234
Jenis-jenis Proses:
Foreground Process
Berinteraksi dengan user
Memerlukan user input
Running di terminal
Contoh: text editor, web browser
$ vim file.txt # Foreground process
Background Process
Berjalan di belakang layar
Tidak perlu user interaction
Bisa di-control via job control
Contoh: compilation, data processing
$ gcc program.c & # Background process
Daemon Process
Proses sistem background
System services
No controlling terminal
Contoh: sshd, nginx, mysql
systemctl status sshd # Daemon process
3. Process States (Status Proses)
Linux Process States:
Status
Kode
Deskripsi
Contoh
Running
R
Sedang dieksekusi CPU
Active computation
Sleeping
S
Menunggu event atau resource
Waiting for I/O
Stopped
T
Dihentikan sementara oleh signal
Debugging pause
Zombie
Z
Proses telah selesai tapi entry masih ada
Parent belum reap
Dead
X
Proses yang sepenuhnya terminated
Fully cleaned up
Process Lifecycle:
Created
→
Ready
→
Running
→
Waiting
→
Terminated
Zombie Processes: Terjadi ketika child process selesai tetapi parent process belum membaca exit statusnya. Biasanya hilang setelah parent process mereap status.
4. Monitoring Processes di Linux
ps (Process Status)
Snapshot of current processes
Basic Usage:
# Semua proses dengan detail
ps aux
# Format lengkap
ps -ef
# Proses milik user tertentu
ps -u username
# Proses berdasarkan PID
ps -p 1234
Output Fields:
USER - Process owner
PID - Process ID
%CPU - CPU usage
%MEM - Memory usage
COMMAND - Command line
top & htop
Real-time process monitoring
Basic Usage:
# Basic real-time monitor
top
# Enhanced version dengan UI
htop
Important Shortcuts:
q
Quit
k
Kill process
r
Renice process
P
Sort by CPU
M
Sort by Memory
1
Show all CPUs
pidof & pgrep
Process searching tools
Find Process by Name:
# Cari PID dari process name
pidof nginx
# Output: 1234 5678
Advanced Searching:
# Cari PID dengan pattern
pgrep -u root sshd
# Cari dengan full command match
pgrep -f "nginx: master process"
/proc Filesystem
Virtual filesystem untuk process info
Explore Process Info:
# List semua processes
ls /proc/
# Detail process tertentu
cat /proc/1234/status
# Memory info
cat /proc/meminfo
# System load
cat /proc/loadavg
Important Files:
/proc/PID/status
/proc/PID/cmdline
/proc/PID/environ
/proc/PID/fd/
5. Process Management di Linux
Mengirim Signal ke Proses:
Process Termination
# Force kill process
kill -9 1234
# Graceful termination
kill -15 1234
# Kill by process name
pkill nginx
# Kill all processes dengan nama
killall chrome
Process Control
# Pause process
kill -STOP 1234
# Resume paused process
kill -CONT 1234
# Interrupt process (Ctrl+C)
kill -INT 1234
# Hangup signal
kill -HUP 1234
Background Job Management:
Job Control
# Jalankan di background
./script.sh &
# Lihat background jobs
jobs
# Bawa job 1 ke foreground
fg %1
# Lanjutkan job 1 di background
bg %1
Process Priority
# Jalankan dengan priority 10
nice -n 10 ./script.sh
# Ubah priority proses berjalan
renice -n 5 -p 1234
# Check current nice value
ps -o pid,ni,comm -p 1234
Nice Range: -20 (highest priority) to 19 (lowest priority)
6. Monitoring Processes di Windows
Task Manager
GUI process monitoring
Quick Access:
Ctrl+Shift+Esc - Direct open
Ctrl+Alt+Delete - Security screen
Tabs:
Processes - Running applications
Performance - System resources
App history - Resource usage history
Startup - Startup programs
PowerShell
Process Commands:
# Semua processes
Get-Process
# Processes by name
Get-Process -Name "chrome"
# Stop process
Stop-Process -Name "notepad"
Stop-Process -ID 1234