Saturday, January 12, 2013

Добавляем startup скрипты в MAC OS X

Понадобилось мне примонтировать жесткие сетевые диски в Мак оси. Делается это как и в Линукск командой mount. Усложним задачу - сделаем монтирование при загрузке системы. У меня MAC OS 10.6 (Snow Leopard).
В Линукс это делается просто - fstab. В MAC OS X нет fstab. Точнее файл есть, но не используется. Сделать просто shell script и поставить его при загрузке не так уж и тривиально.
Рассмотрим, как все сделать из консоли. Первым делом, пишем шелл скрипт:

cat mountdrv.sh
#!/bin/bash
mount -o soft,intr,rsize=8192,wsize=8192 192.168.0.11:/data/arch /usr/arch

Монтируем \\192.168.0.11\data\arch в /usr/arch
Даем права на запуск, 644, например.
chmod 644 mountdrv.sh

Далее нам надо поставить скрипт на загрузку. Для этого надо создать plist файл. Это проперти файл для системного агента launchctl


cat test1.plist




Что надо знать:
RunAtLoad когда грузить
ProgramArguments что грузить
UserNameroot кем грузить

Кладем файл в /Library/LaunchDaemons для буут скрипта, в /Library/LaunchAgents для логин скрипта. Для буут скрипта owner - root, для login скрипта   - user

Далее надо зарегистрировать скрипт командой launchctl load test1.plist

Перед эти надо дать нужные права файлу. Например с 777 работать не будет

root# ls -lt
-rwxrwxrwx  1 root  wheel  449 Jan 12 10:28 test1.plist
root#launchctl load test1.plist
launchctl: Dubious permissions on file (skipping): test1.plist nothing found to load
Работает только с 644.
root# chmod 644 test1.plist
root# ls -lt
-rw-r--r--  1 root  wheel  449 Jan 12 10:28 test1.plist
root#df -h

Filesystem                          Size   Used  Avail Capacity  Mounted on

192.168.0.11:/data/arch      20Ti  2.9Ti   17Ti    15%    /usr/arch

Что касается папок для launchctl , нашел такую справку
Applications that run on Startup:
/Library/StartupItems
plist items running on startup:
/Library/LaunchDaemons
/System/Library/LaunchDaemons
Applications that launch on User Login:
* First check your “Login Items” for that user account within the Account settings of System Preferences
~/Library/LaunchAgents
/Library/LaunchAgents/
/System/Library/LaunchAgents/

Если кто-то знает проще метод, дайте знать.

No comments:

Post a Comment