Jump to content

Launchctl not passing start|stop parameter to wrapper script


1 post in this topic

Recommended Posts

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" "

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

 Share

×
×
  • Create New...