ah, I forgot the set the script's file permission. On 2015-01-26 21:17, Suvir Bhargav wrote: > Hi, > > I have a update job for updating the system (let's say it engine for now). > Now i need to invoke it during wifi up only. On other states, update job must > be in stop state. > The problem is my system is pretty old and i don't have access to nice > upstart-file-bridge. Hence i'm calling a script from the job to chehck for > status and controlling the update job from the script itself. > > For the whole sc, i have two jobs and one script. as: > > The engine job .conf file: > ------------------------------------------------------------------------------ > > # engine update > # > # Takes care of updating of the system. > > description "engine update" > > # removing start, it will be started by wifi-job > #start on file FILE_PATH=/var/run/engine/wifiState and started engine > stop on stopped engine or rw_mode > > respawn# sinnce its a network job, hence keeping it respawn > respawn limit 10 5 > > ------------------------------------------------------------------------------ > > > Chechk wifi_status job > ------------------------------------------------------------------------------ > > start on started engine > stop on stopped engine or rw_mode > > > > respawn > respawn limit 10 5 > > script > sleep 10; > /etc/engine/wifi_update.sh > end script > > ------------------------------------------------------------------------------ > > > > And, finally the wifi_update.sh script which basically chehcks for the status > and calls engine update job. > ------------------------------------------------------------------------------------------------------------------------------------------------------------ > > > #!/bin/bash > # we check for wifistate and stop/start service based on it. > > WIFI_FILE='/var/run/engine/wifiState' #chehck the status here > > function update_onwifi () { > if grep -q "^up" /var/run/engine/wifiState && \ > initctl status engine | grep -q "start/running" > then > start engine-update > elif grep -q "^down" /var/run/engine/wifiState; then > stop engine-update > fi > } > > #check if inotify-tools is installed > type -P inotifywait &>/dev/null || { echo "inotifywait command not found."; } > > > # it takes some time for wifi status to appear. so we read the directory for > changes. > while inotifywait --format '%f' -e > modify,attrib,close_write,move,create,delete /var/run/engine/ ; do > > > # it takes some time after boot for the file to appear, hence check. > if [ -f "$WIFI_FILE" ]; then > # we basically chehck everytime someone touch the directory > var/run/engine. > update_onwifi > else > echo "$WIFI_FILE not found." > fi > > done > ------------------------------------------------------------------------------------------------------------------------------------------------------------ > > > Upon boot, my wifi status job keeps respwaning as it says it has been > terminated. I tested the script independently and it works fine. > May be my appraoch to handle inotify case isn't the right one. Would be happy > if someone has any suggestion > > > /Suvir > > ________________________________ > > NOTE FROM MOBITEC: This e-mail message stream in its entirety, including any > attachments, is confidential and proprietary and intended only for the person > or persons originally addressed, or originally intended to be addressed. > Further, it may be protected by certain agreements, legal privilege, legal > precedent or law. It must not be read by or disclosed to any person other > than the intended recipient without the express permission of the sender. Any > confidential or proprietary interests are not waived or lost by reason of > delivery to you. If this e-mail message is received by anyone other than the > designated recipient, please delete it, including all attachments, and notify > the sender immediately by return e-mail. >
-- upstart-devel mailing list upstart-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/upstart-devel