Как выполнить выход из системы с кроном?

Я создаю что-то, чтобы позволить мне устанавливать пределы в течение времени, проведенного на сеанс пользователя: я создал задание крона:

*/120 * * * 1,2,3,4,5 /path/to/command
*/180 * * * 0,6 /path/to/command

и я хочу работать logout (и возможно завершение работы как существует набор пароля BIOS), кто-то мог сказать мне, как выполнить обоих из тех, которые через крон?.

1
задан 1 March 2015 в 07:34

2 ответа

*/150 * * * 0,6 gnome-session-quit

Хорошо работает.

3
ответ дан 10 November 2019 в 08:42

Как Pavel Selivanov указывает в этой статье, которую необходимо установить DBUS_SESSION_BUS_ADDRESS и DISPLAY включить gui связало задачи от cronjob.

Он записал сценарий оболочки, который добирается DBUS_SESSION_BUS_ADDRESS для XFCE, Gnome, Единицы, Корицы и KDE. Я могу подтвердить, что это - работы под ubuntu:16.04.

$ sudo nano /usr/local/bin/gui-cron

#!/bin/sh
[ "$#" -lt 1 ] && echo "Usage: $0 program options" && exit 1

program="$1"
shift

user=$(whoami)
env_reference_process=$( pgrep -u "$user" xfce4-session || pgrep -u "$user" cinnamon-session || pgrep -u "$user" gnome-session || pgrep -u "$user" gnome-shell || pgrep -u "$user" kdeinit )

export DBUS_SESSION_BUS_ADDRESS=$(cat /proc/"$env_reference_process"/environ | grep -z ^DBUS_SESSION_BUS_ADDRESS= | sed 's/DBUS_SESSION_BUS_ADDRESS=//')
export DISPLAY=$(cat /proc/"$env_reference_process"/environ | grep -z ^DISPLAY= | sed 's/DISPLAY=//')
"$program" "$@"

Затем можно создать пользователя cronjob, который работает данным расписанием с crontab синтаксисом. Здесь, например, каждые 15 минут между 22:00 и 5:59:

$ crontab -e

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
*/15 22-23,00-05 * * * gui-cron gnome-session-quit --power-off
1
ответ дан 3 December 2019 в 07:03

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

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