Выполните две команды последовательно, используя crontab

Моя 3-летняя девочка любит SuperTux . Она не может управлять мышью, поэтому игра должна запускаться автоматически при запуске. После игры компьютер должен автоматически выключиться.

Однако, когда я поместил следующую команду в « crontab -e »:

@reboot env DISPLAY=:0.0 /usr/games/supertux2 && echo "PASSWORD" | sudo -S shutdown -h now

Первая часть запускает игру на старом ПК при загрузке. время. Я ожидал, что вторая часть команды выключит компьютер, когда моя девушка выйдет из игры, но она не работает.

Разве цепная команда A && B не означает, что когда А закончил, запустил В?

Как я могу автоматизировать выключение компьютера, когда игра закрыта?

4
задан 25 February 2016 в 00:36

1 ответ

Технически, A && B будет выполнять B только тогда, когда A успешен (выход со статусом EXIT_SUCCESS, то есть 0). Аналогично, A || B будет выполнять B только в случае сбоя A. Другим вариантом может быть A; B, который должен выполнять B независимо от состояния выхода A, но только после завершения 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:

[ 111]

А затем вызовите это при перезагрузке, а не / usr / games / supertux2

0
ответ дан 25 February 2016 в 00:36

Другие вопросы по тегам:

Похожие вопросы: