Power Off. Bash Linux

Рассмотрим тот случай, когда необходимо выключить компьютер ровно в 20 часов, при этом не входить в конфликт с оператором рабочего места , os Linux

Это очень удобно при эксплуатации компьютера детьми , которым нужно ложиться спать своевременно и не засиживаться за компьютером

Создаем файл , с именем power_off.sh
----

#!/bin/bash
 
# id -u узнаем пользователя
 
if [[ $EUID -gt 1000 ]]; then

    echo "Hello my friend, is time to sleep! Thank you for your attention!"
    /usr/sbin/shutdown -h 1 &>/dev/null
    exit 1
fi

В скрипте применяется конструкция $EUID -gt 1000 , определяющая «id пользователя» > 1000, у пользователя root — id =0 , у следующего id=1000 (в рассматриваемом случае у того пользователя , у которому скрипт разрешает работаь ) , а у всех кто 1001, 1002 и т.д. это друге пользователи системы, которым мы и ограничиваем время работы компьютера.

если необходимо произвести ограничение работы конкретному пользователю , то нужно применять конструкцию «$EUID -eq user_id», что означает если «$EUID равно номеру_юзер_id»

важно отметить , что для корректной работы скрипта необходимо указывать полный путь к исполняемой команде «/usr/sbin/shutdown»

Обязательно делаем файл исполняемым командой chmod +x power_off.sh

затем устанавливаем расписание , по которому этот файл будет запускаться

crontab -u user  : устанавливаем crontab для нужного пользователя, или для root пользователя
 
* 20 * * * /полный/ путь к скрипту/power_off.sh : установка времени, 20 часов вечера ежедневно
 

После выполнения всех выше перечисленных пунктов, компьютер будет сам выключаться, если в системе будет работать пользователь отличный от id = 2000.

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

Если статья была полезной — дайте на нее ссылку на своем сайте !

Спасибо!

Поддержите автора : пройдите по ссылке SurgStore.ru