Я прочитал справочные страницы для plist и launchd.plist, а также посты об использовании файлов plist для запуска скриптов при входе в систему; но я могу заставить вещи работать.
Мой сценарий расположение и разрешения:
sshfs_mounts.sh
:
ls -al Library/scripts/
-rwxr-xr-x 1 jason staff 288 May 10 17:06 sshfs_mounts.sh
cat Library/scripts/sshfs_mounts.sh
#!/bin/bash
#
## automounting of sshfs directories
mount_cosmic ()
{
/usr/local/bin/sshfs jason@iss.nasa.gov:/media/NetworkShare/spacedock-1 /Users/jason/share;
}
mount |grep "/Users/jason/share/"
if [ $? == 1 ] && [ -d "/Users/jason/share" ] && [ $USER == "jason" ]; then
mount_cosmic
fi
ИЗДАНО ИЗ ОРИГИНАЛЬНОГО ПОЧТЫ:
Если я запускаю скрипт вручную, он выполняется как положено. Я могу загрузить plist (launchctl load ~/Library/LaunchAgents/local.sshfs.plist
) и запустить его (launchctl start ~/Library/LaunchAgents/local.sshfs
), но он не запускает скрипт. В логах (cat /var/log/system.log |grep local.sshfs
) я получаю:
May 11 09:30:26 rover com.apple.launchd.peruser.504[305] (local.sshfs.plist): Throttling respawn: Will start in 10 seconds
Вот мое местоположение и разрешения для файла plist:
ls -al Library/LaunchAgents/local.sshfs.plist
-rw-r--r-- 1 jason staff 419 May 10 18:14 Library/LaunchAgents/local.sshfs_mounts.plist
И файл (отредактированный после принятия совета Гордона ^ 2):
<?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>KeepAlive</key>
<true/>
<key>Label</key>
<string>local.sshfs.plist</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>/Users/jason/Library/scripts/sshfs_mounts.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/sshfs_mounts.err</string>
<key>StandardOutPath</key>
<string>/tmp/sshfs_mounts.out</string>
</dict>
</plist>
Махало заранее.