我有一个bash脚本,希望在OS X上使用launchd plist文件运行。我的问题是,bash脚本包含sudo命令,这导致无法运行。例如,我的bash脚本如下:
#!/bin/bash
sudo /opt/local/bin/bindfs -u user1 /Library/WebServer/Documents/user1 /vhosts/user1/public_html
sudo /opt/local/bin/bindfs -u user2 /Library/WebServer/Documents/user2 /vhosts/user2/public_html
我的com.test.bindfs.plist文件看起来像这样(使用Lingon创建):
<?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>GroupName</key>
<string>admin</string>
<key>Label</key>
<string>com.jamespayne.bindfs</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/bindfs.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
我已经检查过脚本,通过在启动后运行并输入密码来验证其是否有效,但是它无法在启动时运行。launchd plist正在运行,但出现以下错误:
sudo: no tty present and no askpass program specified
有人知道如何使其正常工作或为什么会出现该错误吗?谢谢。