Сценарій Launchd для підключення тому при завантаженні


5

У мене є сценарій monta.sh монтувати зовнішній том:

#!bin/sh
mkdir -p /Volumes/remvol
mount_smbfs //user:password@server/folder /Volumes/remvol

Тоді я маю com.jo.monta.plist для запуску сценарію після завантаження системи /Library/LaunchDaemons:

<?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.jo.monta</string>
    <key>Disabled</key>
    <false/>
    <key>UserName</key>
    <string>admin</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/admin/scripts/monta.sh</string>
    </array>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Я тестував скрипт з командного рядка, і він працює, однак, якщо я ввійшов після завантаження, том не змонтований.

Здається, що файл plist не завантажується? що не так?


Невелика корекція сценарію: #!bin/sh має бути #!/bin/sh
Graham Miln

Ви бачите якийсь вихід у system.log Що стосується цієї стартової роботи? Ви можете побачити вміст system.log використання Програми & gt; Утиліти & gt; Console.app .
Graham Miln

@GrahamMiln Спасибі, я виправив свій сценарій. Я не бачив жодної посилання com.jo.monta у системному журналі я також використовував launchctl list | grep monta щоб побачити якщо там щось та ніяке посилання ні.
naio

Чому ви використовуєте ProgramArguments замість Program (це проста пара ключ / значення, а не масив, див man launchd.plist для деталей)?
nohillside

Відповіді:


3

Сценарій і plist прекрасно працюють, якщо ви внесли наступні зміни:

додати косу риску в /Users/admin/scripts/monta.sh:

#!/bin/sh
mkdir -p /Volumes/remvol
mount_smbfs //user:password@server/folder /Volumes/remvol

належне володіння com.jo.monta.plist:

sudo chown root:wheel /Library/LaunchDaemons/com.jo.monta.plist

належний біт режиму файлу /Users/admin/scripts/monta.sh:

chmod 755 /Users/admin/scripts/monta.sh

завантажити демон запуску:

sudo launchctl load /Library/LaunchDaemons/com.jo.monta.plist

@naio Спробуйте chmod 755 /Users/admin/scripts/monta.sh
klanomath
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.