最近、Ubuntuの起動に関する問題が発生し、Bashシェルに閉じ込められました。
Ubuntu 12.04を使用しています。起動スクリプト(/etc/init/player.conf)は次のとおりです。
start on (local-filesystems and runlevel [2345])
stop on runlevel [06]
script
/tmp/test.sh
end script
例/tmp/test.sh
:
#!/bin/bash
TOKEN="token"
TOKEN_FILE="/tmp/token"
OUTPUT_FILE="/tmp/test_exit"
func()
{
grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE"; exit 0
}
trap 'trap "" INT TERM QUIT EXIT; func' INT TERM QUIT EXIT
rm -f "$OUTPUT_FILE"
echo "$TOKEN" > "$TOKEN_FILE"
grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE";
sleep 1000
exit 0
テストプログラム:
$sudo service player start
$sudo service player stop
$cat /tmp/test_exit
0
2
私の質問は、ファイル(/tmp/token)が変更されておらず、grepがそのファイル( "/tmp/token")で文字列( "token")を見つける必要があるため、2番目の結果が2の理由です。