r.davis Posted April 6, 2009 Share Posted April 6, 2009 Hi, I'm trying to create a plist that calls a shell script wrapper. I've verified that launchctl is calling my shell script, but it never passes the 'start|stop|restart' argument. All the wrapper-script example on the net use the RunService method (in /etc/rc.common). How do I write my plist and/or run launchctl, such that it actually passes the $1 parameter necessary to get RunService to work? My plist looks as follows: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" " http://www.apple.com/ DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>EnvironmentVariables</key> <dict> </dict> <key>Label</key><string>TuxedoHub</string> <key>OnDemand</key><false/> <key>ProgramArguments</key> <array> <string>/Library/TuxHub/jail/home/tux/bin/tux-launchd.sh</string> </array> <key>RunAtLoad</key><true/> <key>ServiceDescription</key><string>TuxHub</string> <key>StandardErrorPath</key><string>/Library/TuxHub/jail/home/tux/logs/launchd.stderr</string$ <key>StandardOutPath</key><string>/Library/TuxHub/jail/home/tux/logs/launchd.stdout</string> <key>UserName</key><string>root</string> </dict> </plist> tux-launchd.sh looks as follows <snip> !/bin/bash source /etc/rc.common echo "Param-count: $#" StartService() { echo "start" } StopService() { echo "stop" } RestartService() { echo "restart" } RunService "$1" <snip> When I look in my log files (/Library/TuxHub/jail/home/tux/logs/launchd.stdout) All I see is Param-count: 0 Param-count: 0 Param-count: 0 Param-count: 0 Param-count: 0 ... Thanks in advance r.davis Link to comment Share on other sites More sharing options...
Recommended Posts