Process, Job, Service, dan System Management
Melihat dan mengelola proses, job shell, service systemd, log, serta tugas terjadwal di Linux server.
Server selalu menjalankan banyak proses. Sebagian berjalan singkat, sebagian sebagai service latar belakang. Modul ini membahas cara memantau, menghentikan, dan mengelola proses serta service dengan benar.
Process
Setiap program yang berjalan adalah process dengan PID (Process ID), parent, user, dan status.
ps aux
ps -ef
top
htop| Perintah | Fungsi |
|---|---|
ps aux | Snapshot semua proses |
top | Monitor real-time bawaan |
htop | Monitor interaktif (perlu install) |
pgrep nginx | Cari PID berdasarkan nama |
pidof nginx | PID program tertentu |
pstree -p | Pohon proses |
Contoh instalasi htop:
apt install -y htopStatus proses di ps
| Kode | Arti |
|---|---|
R | Running |
S | Sleeping (menunggu) |
D | Uninterruptible sleep (biasanya I/O) |
Z | Zombie |
T | Stopped |
Menghentikan proses
kill PID
kill -15 PID
kill -9 PID
pkill -f "node server.js"| Signal | Arti |
|---|---|
SIGTERM (15) | Minta proses berhenti dengan rapi |
SIGINT (2) | Interupsi, biasanya Ctrl+C |
SIGKILL (9) | Paksa berhenti, tidak bisa ditangani |
SIGHUP (1) | Reload konfigurasi pada banyak daemon |
Utamakan SIGTERM
Gunakan SIGTERM lebih dulu agar aplikasi sempat menutup koneksi dan menyimpan data. kill -9
hanya jika proses benar-benar tidak merespons.
Job shell
Job adalah proses yang dijalankan dari shell interaktif.
sleep 300 &
jobs
fg %1
bg %1
Ctrl+Z&menjalankan di background.Ctrl+Zmenangguhkan proses ke background.jobsmelihat daftar job.fgmengembalikan ke foreground.bgmelanjutkan di background.
Agar proses tetap hidup setelah logout:
nohup node server.js > app.log 2>&1 &Untuk produksi, gunakan systemd atau PM2, bukan nohup sebagai solusi permanen.
Service dengan systemd
systemd adalah init system yang mengelola service, mount, timer, dan banyak lagi.
systemctl status nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx
systemctl enable nginx
systemctl disable nginx
systemctl is-enabled nginx| Perintah | Fungsi |
|---|---|
start | Menjalankan service |
stop | Menghentikan service |
restart | Stop lalu start |
reload | Memuat ulang konfigurasi tanpa stop |
enable | Aktif saat boot |
disable | Tidak aktif saat boot |
Membuat service sendiri
Buat file /etc/systemd/system/myapp.service:
[Unit]
Description=Aplikasi Node.js Latihan
After=network.target
[Service]
Type=simple
User=deploy
WorkingDirectory=/srv/app
Environment=NODE_ENV=production
EnvironmentFile=/srv/app/.env
ExecStart=/usr/bin/node /srv/app/server.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetAktifkan:
systemctl daemon-reload
systemctl enable --now myapp
systemctl status myapp --no-pagerLog dengan journalctl
journalctl -u nginx
journalctl -u myapp -f
journalctl -u myapp --since "1 hour ago"
journalctl -p err -b
journalctl --disk-usage| Opsi | Arti |
|---|---|
-u | Filter unit/service |
-f | Ikuti log real-time |
--since | Sejak waktu tertentu |
-p err | Hanya level error |
-b | Log boot saat ini |
Tugas terjadwal: cron
crontab -e
crontab -lFormat cron:
* * * * * perintah
│ │ │ │ │
│ │ │ │ └─ hari (0-7, Minggu=0 atau 7)
│ │ │ └─── bulan (1-12)
│ │ └───── tanggal (1-31)
│ └─────── jam (0-23)
└───────── menit (0-59)Contoh backup setiap hari pukul 02.00:
0 2 * * * /usr/bin/tar -czf /backup/app-$(date +\%F).tar.gz /srv/appCron vs systemd timer
Untuk service modern, systemd timer lebih mudah dipantau lewat systemctl list-timers dan
terintegrasi dengan journal. Cron tetap sederhana dan banyak dipakai.
Praktik: memantau aplikasi
# 1. Lihat proses Node
pgrep -af node
# 2. Cek service
systemctl status myapp --no-pager
# 3. Ikuti log
journalctl -u myapp -f
# 4. Cek penggunaan resource
top -o %CPU
free -h
df -hRingkasan
- Process dikelola dengan
ps,top,pgrep, dankill. - Job shell memakai
&,jobs,fg, danbg. - Service permanen sebaiknya dijalankan lewat systemd.
journalctlmembaca log, sedangkan cron atau timer menjalankan tugas terjadwal.
Selanjutnya
Masuk ke jaringan di IP Address, IPv4, Subnet, dan Private Network.
Environment Variables, PATH, dan Shell Configuration
Memahami environment variable, cara kerja PATH, file konfigurasi shell, dan praktik aman menyimpan konfigurasi aplikasi.
IP Address, IPv4, Subnet, dan Private Network
Memahami struktur IPv4, CIDR, subnet mask, alamat privat, dan cara merancang jaringan internal untuk Proxmox, VM, dan LXC.