Рейтинг:1

Попытка включить пользовательскую службу в Ubuntu 18.04 Minimal возвращает «Не удалось включить модуль: файл модуля backuptos3.service не существует».

флаг es

Извиняюсь за длину:

Я разместил тот же пост на 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 не является исполняемым: нет такого файла или каталог Попытка удалить файловую систему диска, и мы не можем разрешить что.

Я буду работать над этим блоком, чтобы увидеть, смогу ли я добиться прогресса.

user535733 avatar
флаг cn
Вы не забыли запустить `sudo systemctl daemon-reload` после добавления файлов .timer и .system?
LeviRCoding avatar
флаг es
Сначала я бы забыл сделать это, но вернулся бы, когда забыл. Я не думал, что будет проблема, если я пропущу его в первом раунде. Кажется, это удается, когда я запускаю его. После очередной проверки. Тот же результат.
Doug Smythies avatar
флаг gn
Я не знаком с сервисами root (sudo run), находящимися в `~/.config/systemd/user`. Это место кажется мне неправильным. Сервисы, которые я написал, находятся в `/etc/systemd/system` и `/etc/systemd/system/multi-user.target.wants`, причем последний является ссылкой на первый.
LeviRCoding avatar
флаг es
Я перешел к `/etc/systemd/system`, установил соответствующие разрешения, затем перезагрузил демона, попытался включить. Ошибка недопустимого аргумента.
Рейтинг:0
флаг es

Дуг Смитис был прав выше. (Не могу понять, как отдать должное, кроме этого.) У меня было несколько проблем, как указано в блоке выше.

Тот, который возвращал ошибку, которую я впервые опубликовал, должен был поместить файлы .service и .timer в неправильное место.

Другие проблемы были связаны с разрешениями. Мне пришлось проверить файл .service для пользователя и пользовательского каталога, а также использовать

sudo chmod 775 <Имя службы>

и

sudo chown ubuntu:ubuntu <имя службы>

Я также узнал, что каким-то образом... я дважды вставил свой код в файл .service. (У меня есть догадка: иногда мой щелчок правой кнопкой мыши вставляет как нажатие, так и подъем кнопки мыши.) Очевидно, что Nano был здесь полезен.

Спасибо за помощь!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.