YanoRyuichi.com/
Wiki
Blog
GitHub
Sandbox
開始行:
* trapコマンドによるシグナル捕捉 [#za454616]
** シグナル捕捉をしないスクリプト [#fd228784]
何か重い処理を行うスクリプトがあったとして、スクリプトが...
#!/bin/bash
lockfile=/tmp/lockfile
if [ ! -e $lockfile ]; then
touch $lockfile
echo "Do somethnig."
sleep 5
echo "Done."
rm $lockfile
else
echo "The process is already running."
fi
このスクリプトは実行中に異常終了するとロックファイルが残...
** シグナル捕捉するスクリプト [#kef49d52]
上のような事態を防ぐためにtrapコマンドを使って、ロックフ...
#!/bin/bash
lockfile=/tmp/lockfile
if [ ! -e $lockfile ]; then
trap "echo Trapped; rm -f $lockfile; exit" INT QUIT ...
touch $lockfile
echo "Do somethnig."
sleep 5
echo "Done."
rm $lockfile
else
echo "The process is already running."
fi
このスクリプトを実行中にkillコマンドでプロセスを殺したり...
*** 終了時に必ずある処理を行うようにする [#sa81bb96]
trapコマンドにはいろいろなシグナルを指定できるが、EXITを...
#!/bin/bash
cleanup() {
rm -f $lockfile
echo Done.
exit
}
lockfile=/tmp/lockfile
if [ ! -e $lockfile ]; then
trap cleanup EXIT
touch $lockfile
echo "Do somethnig."
sleep 5
else
echo "The process is already running."
fi
** 使用可能なシグナル [#ge78570f]
kill -l
ちなみにKILL(kill -KILLに)シグナルは捕捉できない。
終了行:
* trapコマンドによるシグナル捕捉 [#za454616]
** シグナル捕捉をしないスクリプト [#fd228784]
何か重い処理を行うスクリプトがあったとして、スクリプトが...
#!/bin/bash
lockfile=/tmp/lockfile
if [ ! -e $lockfile ]; then
touch $lockfile
echo "Do somethnig."
sleep 5
echo "Done."
rm $lockfile
else
echo "The process is already running."
fi
このスクリプトは実行中に異常終了するとロックファイルが残...
** シグナル捕捉するスクリプト [#kef49d52]
上のような事態を防ぐためにtrapコマンドを使って、ロックフ...
#!/bin/bash
lockfile=/tmp/lockfile
if [ ! -e $lockfile ]; then
trap "echo Trapped; rm -f $lockfile; exit" INT QUIT ...
touch $lockfile
echo "Do somethnig."
sleep 5
echo "Done."
rm $lockfile
else
echo "The process is already running."
fi
このスクリプトを実行中にkillコマンドでプロセスを殺したり...
*** 終了時に必ずある処理を行うようにする [#sa81bb96]
trapコマンドにはいろいろなシグナルを指定できるが、EXITを...
#!/bin/bash
cleanup() {
rm -f $lockfile
echo Done.
exit
}
lockfile=/tmp/lockfile
if [ ! -e $lockfile ]; then
trap cleanup EXIT
touch $lockfile
echo "Do somethnig."
sleep 5
else
echo "The process is already running."
fi
** 使用可能なシグナル [#ge78570f]
kill -l
ちなみにKILL(kill -KILLに)シグナルは捕捉できない。
ページ名: