Извиняюсь за длину:
Я разместил тот же пост на Stack Overflow: https://stackoverflow.com/questions/69671377/attempting-to-enable-a-custom-service-in-ubuntu-18-04-minimal-returns-failed-to
В этой системе у меня установлен AWS CLI2 вместе со вспомогательными пакетами и различными универсальными пакетами, такими как unzip и wget.
У меня есть экземпляр AWS с Ubuntu 18.04 LTS Minimal (ami-006e7e4c46a45d7d7). У меня есть файл .service (backuptos3.service), который я создал и работает на нескольких серверах CentOS. Он выполняет сценарий. (Backup_To_S3.sh) Существует сопутствующий файл .timer, который должен запускать этот файл .service. (backuptos3.таймер)
У меня есть «Backup_To_S3.sh» в «/home/users/bin» с разрешениями 755 (что может быть неправильным словом). Файлы «backuptos3.service» и «backuptos3.timer» также находятся в «~/.config/systemd/user» с разрешениями 755. Владелец здесь тот же, что и владелец папки.
Когда я запускаю команду:
sudo systemctl включить backuptos3.service
Я получаю сообщение об ошибке: «Не удалось включить модуль: файл модуля backuptos3.service не существует».
Я не нашел убедительного объяснения, почему и что делать, чтобы это исправить. Любые идеи?
Я заменил сервер (в конце концов, это AWS) на 18.04 LTS (не минимальный), но это не помогло. Я проверил примечания к выпуску (на всякий случай...) ничего.
Это как-то не подошло: https://stackoverflow.com/questions/53297867/enable-docker-services-in-ubuntu-18-04
Эти два, казалось, подходили, но я не понимаю, что происходит: https://github.com/nix-community/lorri/issues/68 и https://github.com/abraunegg/onedrive/issues/250
Я тоже видел вот это: Не удалось запустить gunicorn.service: устройство gunicorn.service не найдено. Убунто 18.04. Проблема в том, что предлагаемый ответ - это то, с чего начинается моя проблема.
я использовал https://www.linux.com/training-tutorials/systemd-timers-two-use-cases-0/ для первоначальной сборки файлов.
Я включил файлы .service и .timer ниже.
# backuptos3.service
[Ед. изм]
Описание= Загружает резервные копии в AWS S3
Документация = ""
[Оказание услуг]
Тип = простой
Пользователь = убунту
ExecStart= /home/ubuntu/bin/Backup_To_S3.sh
TimeoutStopSec= 21600 # 6 часов
[Установить]
WantedBy= многопользовательская.цель
и
# backuptos3.timer
[Ед. изм]
Описание=backuptos3
[Таймер]
Юнит=backuptos3.service
OnCalendar=*-*-* 02:30:00
Постоянный = истина
[Установить]
WantedBy=basic.target
ОБНОВЛЕНИЕ: после предложения Дуга Смитиса я провел еще немного поиска по включению пользовательских и корневых служб. Нашел статью о переполнении стека (https://stackoverflow.com/questions/66534369/error-failed-to-enable-unit-invalid-argument), в котором обсуждалась проблема с недопустимым аргументом. Это привело к другой статье (https://stackoverflow.com/questions/48177558/what-does-failed-to-execute-operation-invalid-argument-mean-when-running-syst), у которого был системный анализатор sudo systemd-analyze проверить ваше имя.сервис
Я запустил это и придумал:
Файл конфигурации /etc/systemd/system/./backuptos3.service помечен как исполняемый. Пожалуйста, удалите биты разрешения на выполнение.
В любом случае продолжаем. backuptos3.service: Служба имеет более одного
Настройка ExecStart=, которая разрешена только для сервисов Type=oneshot.
Отказ. backuptos3.service: не удалось создать
backuptos3.service/start: модуль backuptos3.service не загружен
правильно: Неверный аргумент. backuptos3.service: Команда
/home/centos/bin/PDFS3Uploader.sh не является исполняемым: нет такого файла или
каталог Попытка удалить файловую систему диска, и мы не можем разрешить
что.
Я буду работать над этим блоком, чтобы увидеть, смогу ли я добиться прогресса.