Установить демон для запуска при загрузке с systemd

В конце передачи rsync проверяет, совпадает ли переданный файл с тем, который начали передавать. Если файлы не совпадают, он предупреждает вас об этом и переходит к следующему. Если у вас стоит --remove-source-files, он не будет удалять файл, который, по его мнению, был передан неправильно или не полностью.

При условии, что существует окно возможностей, в течение которого rsync может успешно передать файлы журнала, нет большого вреда в том, чтобы повторять rsync чаще - или даже повторять его до тех пор, пока он не будет успешным:

k=3
while test 0 -lt $k && k=$((k-1))
do
    rsync .... && break
    sleep 10
done

Если это не сработает, вам придется подумать о том, как сделать "моментальный снимок" файлов журнала на время, достаточное для копирования:

ssh -q remote_host 'mkdir -p rsync.tmp; cp -p *.log rsync.tmp/'
rsync -a --remove-source-files remote_host:/path/to/logs/rsync.tmp/*.log ....
3
04.09.2016, 19:00
1 ответ

У меня нет Ubuntu 16.04, чтобы протестировать это или предоставить вам много подробностей, но systemd имеет функцию совместимости, позволяющую использовать старые /etc/init.d скрипты для продолжения работы. Вместо использования update-rc.d , чтобы включить ваш демон, используйте эквивалент собственной команды systemd:

sudo systemctl enable mydaemon

Если это по-прежнему вызывает ту же ошибку, добавьте недостающие строки в начальный набор комментариев в вашем сценарии:

# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6

между # ## BEGIN INIT INFO и ### END INIT INFO и повторите попытку. См. Описание этих строк LSB core . Вы также можете явно запустить демон с помощью

sudo systemctl start mydaemon

и запросить его статус с помощью

sudo systemctl status -l mydaemon

См. man systemd-sysv-generator для возможности совместимости. См. эту вики для преобразования System V или сценариев выскочки, подобных вашему, в собственные модули systemd.

5
27.01.2020, 21:18

Теги

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