ฉันมีสคริปต์ Perl (สคริปต์นี้เป็นที่แน่นอน) ที่บันทึกกิจกรรมของผู้ใช้ตามเวลาว่างบนระบบ MacOS X Snow Leopard อย่างไรก็ตามเมื่อเปิดใช้งานการสลับผู้ใช้อย่างเร็วผู้ใช้มากกว่าหนึ่งรายอาจเข้าสู่ระบบในเวลาเดียวกัน ฉันต้องการให้สคริปต์ดูคอมพิวเตอร์ว่า 'ไม่ได้ใช้งาน' หากผู้ใช้รายอื่นทำงานอยู่ (เช่นใช้ GUI) ผ่านการสลับผู้ใช้อย่างเร็ว
มีหลายวิธีที่จะคิดออกเมื่อผู้ใช้เข้าสู่ระบบการค้นหาเมื่อผู้ใช้ "สลับ" ครั้งสุดท้ายดูเหมือนยากขึ้น วิธีแก้ปัญหาของฉันคือการดูที่/var/log/secure.log
บันทึกเหตุการณ์การสลับผู้ใช้อย่างรวดเร็ว:
tail -200 /var/log/secure.log | grep "User info context values set" | tail -1
อย่างไรก็ตามสำหรับผู้ใช้ที่เรียกใช้สคริปต์ Perl ที่ไม่ใช่ผู้ดูแลระบบsecure.log
จะไม่สามารถอ่านได้ มีวิธีอื่นในการค้นหาผู้ใช้ที่เข้าสู่ระบบอยู่ในขณะนี้หรือเหตุการณ์ Fast User Switching ครั้งสุดท้ายคืออะไร
ioreg
แน่นอนว่าปัญหาที่เกิดขึ้นอาจจะโกงถ้าผมมีวิธีการในการหาเวลาว่างสำหรับผู้ใช้ที่ใช้สคริปต์เท่านั้นไม่ใช่เวลาว่างทั้งหมดของคอมพิวเตอร์ฉันกำลังได้รับจาก ดังนั้นฉันเปิดรับข้อเสนอแนะที่นั่นเช่นกัน
ขอบคุณ!
CGSession
อาจจะมีตัวเลือกที่มีประโยชน์บางบรรทัดคำสั่ง แต่ไม่มีซิการ์ฉันเดา:strings /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession | grep "^-"
CGSession
) แต่อย่าสลับไปยังผู้ใช้รายอื่นเมื่อหน้าต่างการเข้าสู่ระบบปรากฏขึ้น และเมื่อใช้เถาเซิร์ฟเวอร์ผู้ใช้หลายคนอาจจะใช้งานได้พร้อมกัน กล่าวอีกนัยหนึ่ง: หากคุณกำลังติดตามผู้ใช้ที่เฉพาะเจาะจงจริงๆแล้วบางทีคุณควรหาวิธีดูว่าผู้ใช้นั้นทำงานอยู่จริงหรือไม่