Community Tutorials macOS كيفية إدارة launchd daemons على macOS باستخدام launchctl
كيفية إدارة launchd daemons على macOS باستخدام launchctl
MACOS

كيفية إدارة launchd daemons على macOS باستخدام launchctl

SKYLINE Knowledge Base
Photo by Carl Heyerdahl on Unsplash

دليل عملي خطوة بخطوة لـ كيفية إدارة launchd daemons على macOS باستخدام launchctl. أوامر مختبرة في الإنتاج، متطلبات مسبقة، تحقق نهائي وروابط لمواضيع ذات صلة.

يستخدم macOS launchd بدل systemd أو SysV. كل خدمة طويلة العمر هي .plist يديرها launchctl. يغطي هذا الدليل التحميل، التفريغ، السرد، وكتابة plist خاص.

المتطلبات المسبقة

  • macOS 12 Monterey أو أحدث.
  • سكربت/ثنائي لتشغيله كـ daemon.

الخطوة 1: مواقع plist

  • /Library/LaunchDaemons/ — طرف ثالث، يعمل كـ root.
  • ~/Library/LaunchAgents/ — شخصي، للمستخدم الحالي.

الخطوة 2: اكتب plist

/Library/LaunchDaemons/com.skyline.collector.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.skyline.collector</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/skyline-collector</string>
    <string>--config</string>
    <string>/etc/skyline/collector.yaml</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
  <key>StandardOutPath</key>
  <string>/var/log/skyline-collector.out.log</string>
  <key>StandardErrorPath</key>
  <string>/var/log/skyline-collector.err.log</string>
  <key>UserName</key><string>skyline</string>
</dict>
</plist>
sudo chown root:wheel /Library/LaunchDaemons/com.skyline.collector.plist
sudo chmod 644 /Library/LaunchDaemons/com.skyline.collector.plist

الخطوة 3: التحميل والبدء

sudo launchctl bootstrap system /Library/LaunchDaemons/com.skyline.collector.plist
sudo launchctl kickstart -k system/com.skyline.collector
sudo launchctl bootout system /Library/LaunchDaemons/com.skyline.collector.plist

الخطوة 4: فحص الحالة

sudo launchctl print system/com.skyline.collector | head -30
sudo launchctl list | grep skyline

الخطوة 5: التشغيل على جدول

<key>StartCalendarInterval</key>
<dict>
  <key>Hour</key>   <integer>2</integer>
  <key>Minute</key> <integer>30</integer>
</dict>

أو كل N ثانية:

<key>StartInterval</key>
<integer>300</integer>

الخطوة 6: LaunchAgents للمستخدم

launchctl bootstrap gui/$UID ~/Library/LaunchAgents/com.you.tunnel.plist

التحقق

sudo launchctl print system/com.skyline.collector
sudo log show --predicate 'subsystem == "com.skyline.collector"' --last 1h
tail -f /var/log/skyline-collector.err.log

الخاتمة

launchd أكثر تعبيرًا من cron — جداول وفواصل ومراقبة ملفات مع إعادة تشغيل تلقائية.

الخطوات التالية

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship macOS for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.