2008/05/05

Xの終了時にscriptを動かしたいのだが

KNOPPIX Japanese editionUbuntu のLive CDを使っていて、終了時にscriptを実行させたい。Window Managerにそういった 機能があれば話は簡単なのだが、どうも見つけられない。
となると、init.dというか、rc?.dに用意することになるのだが、どうも思ったように 動いてくれない。

というわけで、結局、X clientに続いて実行させるようにして、終了時=X clientの 終了時 という、強引な方法を使ってみた。

.networkdiskrc


#!/bin/sh
sudo updatedb &
#printenv > /tmp/env.log
#set > /tmp/set.log
umask 077
echo "SERVICECONF=$SERVICECONF" > .networkdisk.env
echo "SERVICEURL=$SERVICEURL" >> .networkdisk.env
echo "SERVICEHOST=$SERVICEHOST" >> .networkdisk.env
if [ "$SERVICECONF" != "" ]; then
        echo "get networkdisk.zip" | cadaver $SERVICEURL
else
        wget -q $SERVICEURL/networkdisk.zip
fi
unzip -qq networkdisk.zip
if [ "$USER" == "knoppix" ]; then
        sudo chmod 0777 /var/run/screen
        BROWSER=iceweasel
else
        BROWSER=firefox
fi
if [ "$DISPLAY" != "" ]; then
        (xload -geometry -0+0;~/.networkdisk.update) &
fi

networkdisk.zip に入れておく .networkdisk.update は


#!/bin/sh
umask 077
. ~/.networkdisk.env
cd /tmp
rm -f networkdisk.zip
if [ "$SERVICECONF" != "" ]; then
  echo "get networkdisk.zip" | cadaver $SERVICEURL
else
  echo wget $SERVICEURL/networkdisk.zip
fi
cd ~
zip -f networkdisk.zip
cmp networkdisk.zip /tmp/networkdisk.zip
if [ "$?" != "0" ]; then
  echo "Uploading networkdisk.zip to $SERVICEHOST"
  if [ "$SERVICECONF" != "" ]; then
    echo "put networkdisk.zip" | cadaver $SERVICEURL
  else
    echo -e "bin\nput networkdisk.zip" | ftp $SERVICEHOST
  fi
fi



0 件のコメント :

コメントを投稿

Comments on Google+: