Thuta Learning
ရှာဖွေရန်
AdvancedDevOps & Toolsbeginner

Process စီမံခြင်း: kill, jobs, bg/fg

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Process စီမံခြင်း: kill, jobs, bg/fg ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • Terminal ထဲမှာ ကိုယ်တိုင် command ကို စမ်းသုံးတတ်အောင် လုပ်မယ်
  • Real server/project မှာ ဒီ command ဘယ်လို အသုံးဝင်သလဲ ချိတ်မြင်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

kill PID က process ID တစ်ခုကို 'ရပ်ပါ' လို့ signal ပို့တာပါ — default (SIGTERM, signal 15) က process ကို ယဉ်ကျေးစွာ 'save လုပ်ပြီး ပိတ်ပါ' လို့ တောင်းဆိုတာမို့ ချက်ချင်းမရပ်နိုင်ပါဘူး။ kill -9 PID (SIGKILL) ကတော့ 'ချက်ချင်းရပ်' — save စရာမရှိဘဲ အတင်းရပ်တာမို့ data ဆုံးရှုံးနိုင်တဲ့အတွက် နောက်ဆုံးရွေးချယ်စရာအနေနဲ့ပဲ သုံးသင့်ပါတယ်။ Command တစ်ခုကို background မှာ run ချင်ရင် အဆုံးမှာ & ထည့်ပါ, ပြီးရင် terminal ကို ဆက်သုံးလို့ ရပါတယ်။ jobs က background job တွေကို list ပြပါတယ်, fg က background ကနေ foreground ပြန်ဆွဲယူပါတယ်, Ctrl+Z ကတော့ run နေတဲ့ process တစ်ခုကို ခဏရပ်ထားပါတယ် (pause, kill မဟုတ်)။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Long-running script တစ်ခု (ဥပမာ file download) ကို background မှာ run ချင်ရင် wget https://example.com/file.zip & လို့ ရိုက်ပါ — terminal ပိတ်စရာမလိုဘဲ command အသစ်တွေ ဆက်ရိုက်လို့ရပါတယ်။ Process တစ်ခု hang ဖြစ်နေရင် ps aux | grep <name> နဲ့ PID ရှာပြီး kill <PID> ကို ပထမ ကြိုးစားပါ, အလုပ်မဖြစ်မှ kill -9 <PID> ကို use လုပ်ပါ — force-quit ကို ပထမဆုံး option အဖြစ် မသုံးသင့်ပါဘူး။

အတူတူ terminal ထဲ စမ်းမယ်

bash
ps aux | grep myapp
kill 12345
kill -9 12345      # ယဉ်ကျေးစွာ မရရင်သာ

sleep 300 &
jobs
fg %1
You should see
kill 12345 ပြီးနောက် ps aux | grep myapp ကို ပြန် run ရင် process ကွယ်ပျောက်သွားသည်ကို တွေ့ရမည်။

၅ မိနစ် စမ်းကြည့်

sleep 100 & ကို run ကြည့်ပါ (background job)။ jobs နဲ့ list ကြည့်ပြီး kill %1 ဖြင့် ရပ်ကြည့်ပါ။

သတိလေးတစ်ချက်

kill -9 ကို system-critical process (ဥပမာ init, systemd) ပေါ်မှာ run ရင် system crash ဖြစ်နိုင်ပါတယ် — PID ကို double-check လုပ်ပြီးမှ kill လုပ်ပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • kill -9 ကို default option အဖြစ် အမြဲသုံးခြင်း — data unsaved ဖြစ်နိုင်, SIGTERM (default kill) ကို ပထမကြိုးစားသင့်
  • kill PID ကို process name (kill myapp) လို့ ထင်ပြီး error ခံရခြင်း — PID (number) လိုအပ်ပါ, name မဟုတ်ပါ (pkill command ကတော့ name ကို လက်ခံပါတယ်)

အခု ကိုယ်တိုင် စမ်းကြည့်

sleep 100 & ကို run ကြည့်ပါ (background job)။ jobs နဲ့ list ကြည့်ပြီး kill %1 ဖြင့် ရပ်ကြည့်ပါ။

You'll know it worked when: kill 12345 ပြီးနောက် ps aux | grep myapp ကို ပြန် run ရင် process ကွယ်ပျောက်သွားသည်ကို တွေ့ရမည်။

Process စီမံခြင်း: kill, jobs, bg/fg | Thuta Learning