Я пытаюсь написать небольшой скрипт для запуска при входе пользователя в систему. Я искал и заставил скрипт работать, но не могу запустить его при входе в систему с .plist
У нас есть настройка Active Directory. Когда пользователь входит в систему, используя свои учетные данные, скрипт вручную срабатывает после выполнения
tell application "finder"
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
end tell
или
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
и сохранил его как .scpt и вручную работает
Или мне нужно использовать это таким образом
tell application "Terminal"
set MyName to do shell script "whoami"
mount volume "smb://server/folder/" & MyName
end tell
сохранить как .sh
Теперь plist сохранен в /Library/LaunchAgents
:
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.script</string>
<key>ProgramArguments</key>
<array>
<string>/Users/Shared/SCRIPT.sh</string>
</array>
</dict>
</plist>
и выполните следующую команду
launchctl load /Library/LaunchAgents/com.script.plist
Это не работает. Не могу заставить диск автоматически монтироваться во время входа в систему.
Помогите, пожалуйста. Я не программист, поэтому будьте конкретны.
Спасибо, Крис.
решение1
Ваш скрипт — это скрипт AppleScript, а не скрипт оболочки, поэтому вы не можете выполнить его напрямую. Я думаю, что было бы неплохо, если бы команда ossascript
интерпретировала его:
<array>
<string>/usr/bin/osascript</string>
<string>/Users/Shared/SCRIPT.sh</string>
</array>
(и, пожалуйста, используйте более подходящее расширение файла, чем ".sh")
Кстати, я почти уверен, что вы хотите KeepAlive
установить значение <false/>
-- при установке значения <true/>
ваш скрипт будет запускаться постоянно, а не один раз.