Показ сообщения с Crontab

Мы ищем решение, что каждый день недели, ПК делает завершение работы в 20:00.

ПК имеет многопользовательские учетные записи, но всегда только один человек будет использовать его. Будет несколько учетных записей из-за различных заданий в компании.

Напр. Человек 1 Учетная запись A использования, но Человек 2, у кого есть ее собственный ПК, но с тем же изображением, входит в систему другой учетной записи, потому что у нее есть другая функция. Человек 1 только nows вход в систему его учетной записи и человека 2 также только для ее учетной записи. Так 1 пк, несколько учетных записей, но тем не менее один пользователь за один раз.

Используя Crontab (в администраторской учетной записи) был лучший способ позволить этой работе для всех пользователей.
Теперь мы также хотим это в 19:50 сообщение (как предупреждение, или уведомьте, отправляют, или zenity), кажется, предупреждает пользователя завершения работы. (КТО НЕ СМОЖЕТ ПРЕДОТВРАТИТЬ ЕГО).

Я знаю, что не возможно попросить у Crontab * * * * * /path/to/notify-send "Pc will shut down".
Мы попробовали a .sh со следующим кодом:

   #!/bin/sh
   DISPLAY=:0.0
   /usr/bin/notify-send 'shutdown warning'

(Завершение работы, предупреждающее, не то, что мы хотим, но только для теста'.

Мы протестировали этот .sh в терминале и без ошибок. Работы отлично. Когда мы добавляем его к Crontab, как это:

  sudo contrab -e

  * * * * * /home/administrator/sluiten.sh 

(и да это на 100 процентов уверено корректный каталог), он не работает.

Так может кто-то говорить мне что мой .sh файл должен быть похожим и как добавить его к crontab, таким образом, это работает?

1
задан 28 November 2016 в 15:57

2 ответа

Сценарий в качестве примера для получения всех пользователей вошел в систему, и отправьте предупреждение им. После в первый раз, когда скрипт запущен, журнал должен быть проверен, чтобы видеть, нужна ли полю сокращения корректировка, из-за разностей потенциалов в who вывод. На последующем использовании могут быть прокомментированы регистрирующиеся строки эха. Цикл с условием продолжения является излишеством для системы отдельного пользователя, но может оказаться полезным.

#!/bin/bash
###
USERLIST=($(who | sed -e 's/[)(]//g' -e 's/  */ /g' | cut -d ' ' -f1,5 | sort -u | tr -d '\n'))
LOG=/tmp/"$(basename [110])".log
###
echo "$(who | sed -e 's/[)(]//g' -e 's/  */ /g')" >> $LOG
echo "${USERLIST[@]}" >> $LOG
C=0
while [ $C -lt ${#USERLIST[@]} ]
    do
        D=$((C + 1))
        export DISPLAY="${USERLIST[$D]}"
        export XAUTHORITY="/home/${USERLIST[$C]}/.Xauthority"
        export XDG_RUNTIME_DIR=/run/user/$(id -u ${USERLIST[$C]})
        /usr/bin/notify-send 'shutdown warning'
        C=$((C + 2))
    done
1
ответ дан 28 September 2019 в 02:44

Во-первых, root crontabs не похожи на пользователя crontabs и НЕ редактируются с sudo crontab -e. Прочитайте оригинал /etc/crontab файл. root cronjobs хранятся в /etc/cron.d, /etc/cron.daily, /etc/cron.hourly /etc/cron.monthly, и /etc/cron.weekly. Ими управляют с по-другому отформатированный /etc/crontab (это имеет a userid поле), не /var/spool/cron/crontabs/root файл, созданный sudo crontab -e.

Для ответа на вопрос посмотрите man shutdown:

xenial (8) shutdown.8.gz
Provided by: upstart-sysv_1.13.2-0ubuntu21_i386 

NAME
       shutdown - bring the system down

SYNOPSIS
       shutdown [OPTION]...  TIME [MESSAGE]

DESCRIPTION
       shutdown arranges for the system to be brought down in a safe way.  All
       logged-in users are notified that the system is going down and,  within
       the last five minutes of TIME, new logins are prevented.
-2
ответ дан 28 September 2019 в 02:44

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

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