LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Лучше используй posix-шелл (/bin/sh) а не баш. В твоём скрипте нет ничего такого чего posix-шелл не умеет.

Тебе надо увести скрипт в фон, для этого есть оператор &. Итого будет примерно так (последняя строчка):

( sleep $time_off && systemctl suspend ) &

Тут не учтён случай когда фоновые команды попытаются взаимодействовать с консолью (что-то выводить или читать из неё), потому что ни sleep ни systemctl suspend в норме это не делают. Если бы делали - нужны были бы дополнительные конструкции.

Учти, что если будешь вводить указанную команду вручную в интерактивный шелл - её надо обернуть дополнительно:

/bin/sh -c "( sleep $time_off && systemctl suspend ) &"
Иначе при некоторых действиях она может прерваться (например если закроешь окно крестиком а не ctrl-d или exit. Но внутри скриптов это не нужно.

Исправление firkax, :

Лучше используй posix-шелл (/bin/sh) а не баш. В твоём скрипте нет ничего такого чего posix-шелл не умеет.

Тебе надо увести скрипт в фон, для этого есть оператор &. Итого будет примерно так (последняя строчка):

( sleep $time_off && systemctl suspend ) &

Тут не учтён случай когда фоновые команды попытаются взаимодействовать с консолью (что-то выводить или читать из неё), потому что ни sleep ни systemctl suspend в норме это не делают. Если бы делали - нудны были бы дополнительные конструкции.

Учти, что если будешь вводить указанную команду вручную в интерактивный шелл - её надо обернуть дополнительно:

/bin/sh -c "( sleep $time_off && systemctl suspend ) &"
Иначе при некоторых действиях она может прерваться (например если закроешь окно крестиком а не ctrl-d или exit. Но внутри скриптов это не нужно.

Исходная версия firkax, :

Лучше используй posix-шелл (/bin/sh) а не баш. В твоём скрипте нет ничего такого чего posix-шелл не умеет.

Тебе надо увести скрипт в фон, для этого есть оператор &. Итого будет примерно так (последняя строчка):

( sleep $time_off && systemctl suspend ) &

Тут не учтён случай когда фоновые команды попытаются взаимодействовать с консолью (что-то выводить или читать из неё), потому что ни sleep ни systemctl suspend в норме это не делают. Если бы делали - нудны были бы дополнительные конструкции.