
私の3歳の娘はスーパータックス彼女はマウスを操作できないので、起動時にゲームが自動的に実行されるはずです。ゲーム終了後、コンピューターは自動的にシャットダウンするはずです。
しかし、以下のコマンドを「crontab -e「:」
@reboot env DISPLAY=:0.0 /usr/games/supertux2 && echo "PASSWORD" | sudo -S shutdown -h now
最初の部分は、起動時に古い PC でゲームを実行します。コマンドの 2 番目の部分は、娘がゲームを終了したときにコンピューターの電源をオフにすることを期待していましたが、機能しません。
チェーンコマンドはA && B
、A が終了したら B を開始するという意味ではないのですか?
ゲームが終了したときにコンピューターの電源を自動的にオフにするにはどうすればよいでしょうか?
答え1
技術的には、A && B
A が成功した場合 (EXIT_SUCCESS ステータス、つまり 0 で終了した場合) のみ B を実行します。同様に、A || B
A が失敗した場合のみ B を実行します。別のオプションとしては、A; B
A の終了ステータスに関係なく B を実行しますが、A が完了するまでは実行しないというものがあります。ゲームが現在どのように終了しているかはわかりませんが、EXIT_SUCCESS ステータスで終了しない場合は、B は実行されません。
これをテストするには、次のコマンドを実行して、どのコマンドが文字列を生成するかを確認します。
perl -e 'exit 0' && echo "exit was successful"
perl -e 'exit 0' || echo "exit was successful"
perl -e 'exit 0'; echo "exit was successful"
perl -e 'exit 1' && echo "exit was failure"
perl -e 'exit 1' || echo "exit was failure"
perl -e 'exit 1'; echo "exit was failure"
最後に、シェル スクリプト /usr/games/supertux2.sh を作成します。
#!/bin/sh
/usr/games/supertux2
echo "PASSWORD" | sudo -S shutdown -h now
そして、再起動時に/usr/games/supertux2ではなくこれを呼び出します。