KNOPPIX Japanese editionや
Ubuntu
の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