перезапуск пользовательской службы systemd из cron

у меня есть пользовательский тест .

test имеет пользовательскую службу systemd, расположенную по адресу /home/test/.config/systemd/user/testserv.service

В служебном файле содержится:

[Unit]
Description=Test Service
After=network.target

[Service]
WorkingDirectory=/home/test/test_website
ExecStart=/home/test/venv/bin/gunicorn \
    --access-logfile \
    - \
    --workers 2 \
    --bind unix:/home/test/test_website/test_website.sock run:app

[Install]
WantedBy=multi-user.target

Я хотел бы перезапустить это обслуживание каждые 5 минут из cron.

Для этого я создал сценарий /home/test/test.sh

#!/bin/bash

PATH="/home/test/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
HOME="/home/test"
SHELL="/bin/bash"

exec &>> log.txt

systemctl --user restart testserv.service

и запустил его из crontab test , как,

* * * * * /bin/bash /home/test/test.sh

Но я продолжаю получать это ошибка, и я не могу понять причину.

Failed to connect to bus: No such file or directory

Есть идеи, как это исправить?

1
задан 15 October 2018 в 09:51

1 ответ

Попробуйте добавить эти строки перед перезапуском службы:

XDG_RUNTIME_DIR=/run/user/$(id -u)
DBUS_SESSION_BUS_ADDRESS=unix:path=${XDG_RUNTIME_DIR}/bus
export DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR

Найдено здесь: https://unix.stackexchange.com/a/474440

0
ответ дан 2 January 2020 в 17:24

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

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