ก่อนที่ฉันจะเห็นคำถามนี้และคำตอบของฉันฉันทำสคริปต์ทุบตีเล็กน้อย สิ่งนี้ยังมีประโยชน์หากคุณไม่มีสิทธิ์รูทและไม่ได้ติดตั้ง acct หรือคุณไม่ได้เรียกใช้คำสั่งของคุณโดยตรง (ในกรณีของฉัน: ฉันใช้ gui เพื่อตั้งค่ากระบวนการพื้นหลัง) คุณต้องได้รับ PID ก่อนที่จะทำงาน (ใครสนใจที่จะเพิ่มลงในสคริปต์? :)
#!/bin/bash
echo "Checking run time"
read -p "What is the pid? " PID
while true; do
# sleep needed! used to reduce cpu usage and mass of output
sleep 5
ps -eo uid,pid,etime | egrep '$PID' | egrep '$UID'
done
ด้วยวิธีนี้ค้นหา PID ของ PROCESS_NAME
ps aux | awk 'NR == 1 || /PROCESS_NAME/'
อันที่จริงฉันพยายามรวม USER-ID และ PID เพื่อทำให้สคริปต์ไม่เป็นเรื่องจริง แต่มันไม่ง่ายเลย ...
ps -eo uid,pid,etime | egrep '$UID[[:space:]]$PID'
ดูเหมือนจะไม่ทำงานเสมอ ...