Что такое com apple launchd 1

Launchd. Автозапуск программ при загрузке Mac OS X

В этот раз поговорим про автозапуск программ при загрузке Mac OS X. Статья рассчитана на продвинутых пользователей и тех кто стремится к этому уровню. В MacOS X имеется встроенное решение для выполнения автоматизации различных действий — Automator. Программа очень продвинутая в умелых руках, о которой можно писать целые книги, однако сегодня речь пойдет о другом.

Mac OS X, как и другие UNIX-подобные операционные системы, предоставляет просто потрясающие возможности по управлению процессами, демонами и запуском приложений по расписанию. К примеру, можно запустить собственный веб-сервер, выполнять скрипты или программы по расписанию, монтировать файловые системы и т.д. Применений на самом деле масса.

Не так давно, я писал про ограничение оборотов кулера на Mac, таким способом можно снизить шум на MacBook, Mac mini или iMac. Остался, правда, не раскрытым один достаточно важный вопрос, а именно, как автоматизировать запуск нашей утилиты, управляющей работой кулера? Согласитесь, не очень удобно всякий раз лезть в консоль и запускать её вручную. Так что, предлагаю на этом конкретном примере разобраться с Launchd и ознакомиться с сервисами и демонами в Mac OS X.

Services (сервисы) и Daemons (демоны) Mac OS X.

Для начала немного теории. «Сервисы» и «демоны» являются системными службами и обеспечивают работу системы, однако предназначены немного для разных целей, соответственно и работают тоже по-разному. Давайте разберемся, что конкретно делают эти «сервисы» и «демоны» и в чем разница между ними?

Начнем с того, что делают они практически всё, начиная с запуска WEB-сервера и заканчивая монтированием файловых систем и запуском графической оболочки. Разница же между ними в том, что «сервисы», как правило, запускаются после загрузки графического интерфейса и предназначены, в основном, для запуска графических приложений; «демоны» могут запускаться до загрузки графики, в фоновом режиме и предназначены запуска bash/shell скриптов, серверов (служб) и всевозможных консольных утилит.

Сервисы представляют из себя конфигурационные XML файлы с расширением .plist, которые во время загрузки Mac OS обрабатываются и запускаются фоновым процессом launchd. Файлы .plist находятся в директориях LaunchAgents или LaunchDaemons (в зависимости от их предназначения). В системе имеется несколько директорий LaunchAgents и LaunchDaemons. Это ключевой момент в понимании того как происходит работа системы и его стоит рассмотреть подробнее:

Все конфигурационные файлы, находящиеся в данной директории, выполняются при входе в систему (логине) КОНКРЕТНОГО пользователя (в каталоге которого они находятся) и с правами этого пользователя, не затрагивая при этом систему и других пользователей.

Системная директория. Все находящиеся в ней конфигурационные файлы исполняются при логине ЛЮБОГО пользователя с правами вошедшего пользователя.

Снова системная директория, но все конфиги исполняются от лица администратора (root) на уровне системы. Программа или сценарий будет исполнен вне зависимости от того, вошёл какой-либо пользователь в систему или нет. Это и есть нужный нам вариант.

Системная директория зарезервированная OS X. Все конфиги находящиеся в ней являются системными, запускаются при логине любого пользователя. Лучше сюда не лезть без нужды.

Читайте также:  Айфон 12 про макс реплика обзор

Системная директория зарезервированная OS X. Все конфиги, находящиеся в ней, являются системными и запускаются при загрузке системы с правами root. Сюда тоже не стоит лезть.

Как вы уже догадались, директории LaunchAgents используются для запуска «сервисов», а LaunchDaemons — для запуска «демонов».

Файлы конфигурации .plist

Как уже говорилось, все конфигурационные .plist-файлы запускаются фоновым процессом launchd во время загрузки OS X.

Сами по себе .plist-файлы всего лишь «сценарии», набор неких правил, для запуска других приложений и не являются самостоятельными программами, однако отличаются гибкостью и функциональностью в настройке. Пора рассмотреть пример, свой файл сценария я назвал my.fancontrol.plist:

Пока вообще ничего не понятно, ну это мы сейчас поправим. Напомню задачу — необходимо при запуске Mac OS X, до входа пользователя в систему (а то какая-то несправедливость получится) в терминале выполнить команду:

Тем самым мы запускаем утилиту smc и передаем ей два параметра — указываем кулер и выставляем ему максимальную частоту оборотов. Выше вы видите получившийся код нашего сценария со стандартной шапкой формата XML (для всех служб и демонов она одинакова).

Что я тут понаписал? Итак, основные ключи и параметры .plist-файла:

Ключ «Label» задаёт название сервиса, которое будет отображаться в Мониторинге системы или логах утилиты Консоль.

Ключ «ProgramArguments» содержит массив, в котором указаны путь к исполняемому файлу (или bash/shell скрипту) и параметры его запуска. Заметьте, что каждый параметр необходимо записывать отдельно.

Ключ «RunAtLoad» указывает системе, что правило нужно исполнить при загрузке ОС. Есть еще много всяких ключей и параметров, например для запуска приложения по расписанию или через определенные промежутки времени. Этой статьёй я даю лишь толчок для понимания дальнейшего изучения Launchd в OS X и не ставлю целью создать полноценное руководство.

файл создан. Осталось переместить его в папку-назначение (/Library/LaunchDaemons), поправить права доступа и атрибуты, и перезагрузиться. В терминале пишем:

Активировать или дезактивировать работающий сценарии можно выполнив команды:

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 5

Как исправить это:

«launchctl: no plist was returned for: /Library/LaunchDaemons/smc 21.06.14.plist

nothing found to load»

Скорее всего дело в пробеле, который надо экранировать обратным слешем.

Доброго времени суток. Не могу понять как создать сам файл . plist. Не подскажите?

это обычный тестовый документ — создавать и править можно в любом текстовом редакторе. лично я предпочитаю Sublime Text

Хотелось бы реализовать нечто подобное для сценария создания RAM-диска при запуске ОС и перенести на него некоторые кеши. Не поможете решить эту задачу?

Источник

Question: Q: A «com.apple.xpc.launchd[1]» procedure which is carried out every minute

I have had a problem for quite some time with the result, that I disconnected my Buffalo NAS.

Each minute I got a message, which I had to accept. Now I can se why. In the Console under System Log Requests the following is stated each minute:

«com.apple.xpc.launchd[1]: (jp.buffalo.NASPower) Service only ran for 10 seconds. Pushing respawn out by 50 seconds.»

The Buffalo NAS Navigator 2 programme is manually removed from my computer more than one time. Buffalo have no uninstall function, and a «launch request» apparently is not removed, our is removed but not registered in another function on the PC.

Читайте также:  Режим модема iphone через провод

I have seen the other remarks concerning this problem in this discussion forum. I have checked, if there are files with the name «com.apple.xpc.launchd» or something with «jp.buffalo.NASPower» in the directories

What on earth do I do to get rid of this problem, so I can install the programme Buffalo NAS Navigator 2 again ?

MacBook Pro, OS X Mountain Lion (10.8.2)

Posted on Mar 18, 2016 11:06 AM

All replies

Loading page content

Page content loaded

Try running this program and then copy and paste the output in a reply. The program was created by Etresoft, a frequent contributor. Please use copy and paste as screen shots can be hard to read.

Mar 19, 2016 8:27 AM

I have used the EtreCheck system and enclose the report below. When I look back again, part of the problem may be also can be transfer of data from my Old MacBook Pro to the New one covered by the report, or upgrade to OS X El Capitan (the least possible, I think). Concerning this please se the Problem Description in the report.

There are also a failed Launch Agent, and may be other interesting stuff. I look forward to hearing from you.

EtreCheck version: 2.9.10 (261)

Report generated 2016-03-21 09:32:04

Runtime 1:40

Performance: Excellent

Click the [Support] links for help with non-Apple products.

Click the [Details] links for more information about that line.

Problem: Other problem

Description:

A launch agent are running each minute, which is shown as this in the Console:

«com.apple.xpc.launchd[1]: (jp.buffalo.NASPower) Service only ran for 10 seconds. Pushing respawn out by 50 seconds.»

This refers to a NAS hardware, that I have had installed, but has disconnected (1/2 year ago) because of a remark each minute, which I had to accept. The remark on the screen was only shown, when the Buffalo NAS App “NAS Navigator 2” was running. But I can see now, that a procedure is carried out anyway each minute on my MAC.

In December 2014 I changed from my old MACBook Pro to this MACBook pro, and transferred all programmes to this (also the NAS App). After that I have also updated to OS X El Capitan, and I have also deleted the NAS Navigator 2 App and installed it again without a Buffalo uninstaller (don’t exist to my knowledge) more than one time.

What creates the problem I don’t know. The problem existed when the App was installed and when I used the NAS disk, and the procedure is carried out to day after the App is removed. What do I do to quit the procedure carried out each minute, which I think have given the remark when the App was installed and when I used the NAS disk?

Is the problem the result of

1) transfer of programmes from the Old Mac to the New Mac

2) update to OS X El Capitan

3) installation and uninstall of the Buffola App without an uninstaller?

Hardware Information:

MacBook Pro (Retina, 13-inch, Mid 2014)

Читайте также:  Аналог truecaller для айфона

MacBook Pro — model: MacBookPro11,1

1 2,8 GHz Intel Core i5 CPU: 2-core

16 GB RAM Not upgradeable

8 GB DDR3 1600 MHz ok

8 GB DDR3 1600 MHz ok

Bluetooth: Good — Handoff/Airdrop2 supported

Wireless: en0: 802.11 a/b/g/n/ac

Battery: Health = Normal — Cycle count = 100

Video Information:

Color LCD 2560 x 1600

System Software:

OS X El Capitan 10.11.3 (15D21) — Time since boot: about 2 days

Disk Information:

APPLE SSD SM0512F disk0 : (500,28 GB) (Solid State — TRIM: Yes)

EFI (disk0s1) : 210 MB

Recovery HD (disk0s3) [Recovery]: 650 MB

Macintosh HD (disk1) / : 499.05 GB (197.17 GB free)

Core Storage: disk0s2 499.42 GB Online

USB Information:

Apple Inc. Apple Internal Keyboard / Trackpad

Apple Inc. BRCM20702 Hub

Apple Inc. Bluetooth USB Host Controller

Thunderbolt Information:

Apple Inc. thunderbolt_bus

Gatekeeper:

Mac App Store and identified developers

Kernel Extensions:

/System/Library/Extensions

[not loaded] com.tomtom.driver.UsbEthernetGadget (1.0.0d1 — 2016-03-07) [Support]

System Launch Agents:

[not loaded] 6 Apple tasks

[loaded] 147 Apple tasks

[running] 83 Apple tasks

System Launch Daemons:

[not loaded] 44 Apple tasks

[loaded] 146 Apple tasks

[running] 98 Apple tasks

Launch Agents:

[failed] com.adobe.ARMDCHelper.cc24aef4a1b90ed56a. plist (2016-01-30) [Support]

[loaded] com.epson.esua.launcher.plist (2015-06-29) [Support]

[running] com.epson.eventmanager.agent.plist (2012-05-08) [Support]

[loaded] com.google.keystone.agent.plist (2016-03-02) [Support]

[loaded] com.oracle.java.Java-Updater.plist (2014-12-27) [Support]

[running] com.smartlaunch.usbdetection.plist (2015-04-29) [Support]

[not loaded] jp.buffalo.NASPower_pla.plist (2015-10-28) [Support]

Launch Daemons:

[loaded] com.DesignScience.DSMTTool.plist (2014-12-26) [Support]

[loaded] com.adobe.ARMDC.Communicator.plist (2016-01-30) [Support]

[loaded] com.adobe.ARMDC.SMJobBlessHelper.plist (2016-01-30) [Support]

[loaded] com.google.keystone.daemon.plist (2016-03-02) [Support]

[loaded] com.malwarebytes.MBAMHelperTool.plist (2016-03-18) [Support]

[loaded] com.microsoft.office.licensing.helper.plist (2010-09-14) [Support]

[loaded] com.oracle.java.Helper-Tool.plist (2014-12-27) [Support]

User Launch Agents:

[running] com.spotify.webhelper.plist (2016-03-18) [Support]

User Login Items:

iTunesHelper Program (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)

Dropbox Program (/Applications/Dropbox.app)

Wondershare Helper Compact Program (

/Library/Application Support/Helper/Wondershare Helper Compact.app)

AdobeResourceSynchronizer UNKNOWN Hidden (missing value)

Spotify Program Hidden (/Applications/Spotify.app)

TomTomHOMERunner Program Hidden (

/Library/Application Support/TomTom HOME/TomTomHOMERunner.app)

Other Apps:

[loaded] 394 Apple tasks

[running] 206 Apple tasks

Internet Plug-ins:

FlashPlayer-10.6: 21.0.0.182 — SDK 10.6 (2016-03-10) [Support]

QuickTime Plugin: 7.7.3 (2016-02-27)

AdobePDFViewerNPAPI: 15.010.20060 — SDK 10.8 (2016-03-12) [Support]

AdobePDFViewer: 15.010.20060 — SDK 10.8 (2016-03-12) [Support]

Flash Player: 21.0.0.182 — SDK 10.6 (2016-03-10) [Support]

Default Browser: 601 — SDK 10.11 (2016-02-27)

SharePointBrowserPlugin: 14.6.1 — SDK 10.6 (2016-02-21) [Support]

JavaAppletPlugin: Java 8 Update 73 build 02 (2016-02-17) Check version

User internet Plug-ins:

Google Earth Web Plug-in: 7.1 (2013-10-07) [Support]

3rd Party Preference Panes:

Time Machine:

Skip System Files: NO

Auto backup: YES

Volumes being backed up:

Macintosh HD: Disk size: 499.05 GB Disk used: 301.88 GB

Søren Munkholm Jensens Tim [Network]

Total size: 997.71 GB

Total number of backups: 85

Oldest backup: 28/12/2014 14.23

Last backup: 21/03/2016 07.44

Size of backup disk: Adequate

Backup size 997.71 GB > (Disk used 301.88 GB X 3)

Top Processes by CPU:

Top Processes by Memory:

2.02 GB fsck_hfs

1.11 GB kernel_task

295 MB com.apple.WebKit.WebContent(3)

Virtual Memory Information:

9.01 GB Free RAM

6.99 GB Used RAM (1.09 GB Cached)

308 MB Swap Used

Diagnostics Information:

Mar 18, 2016, 08:55:00 PM Self test — passed

Источник

Оцените статью