ฉันสร้างแพ็คเกจ pkg เพื่อสร้าง LaunchAgent เพื่อเริ่ม daemon และในไฟล์สคริปต์หลังการติดตั้งใช้วิธีนี้เพื่อเริ่ม daemon:
launchctl load -s /Library/LaunchAgent/file-name.plist
มันทำงานได้ดี
อย่างไรก็ตามมีปัญหา: ครั้งแรกที่ daemon เริ่มต้นในขณะที่ฆ่า daemon นี้และติดตั้ง LauchAgent อีกครั้งจะไม่สามารถเริ่มหรือฆ่า daemon ได้ มันจะพูดแบบนี้ใน terminal:
file-name.plist: Already loaded
หากฉันรีบูตหรือออกจากระบบก็สามารถเริ่มต้นได้อย่างถูกต้อง ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
การแก้ไขไฟล์สคริปต์หลังการติดตั้งเป็น:
sudo -u $USER /bin/launchctl unload -S Aqua /Library/LauchAgent/file-name.plist
sudo -u $USER /bin/launchctl load -S Aqua /Library/LauchAgent/file-name.plist
ตามความคิดเห็นของ @ Daniel ได้แก้ไขปัญหาก่อนหน้านี้แล้ว ใช้งานได้ดีกับ Mac OS X 10.6 และ 10.7 แต่ใน 10.5, daemon ไม่สามารถเริ่มต้นด้วยวิธีนี้ ฉันลองไฟล์สคริปต์ในเทอร์มินัลหลังการติดตั้ง นี่คือข้อมูลบางส่วน:
launchctl:Error unloading: file-name.plist
launch_msg():Socket is not connected
launchctl unload
?