Как запустить файл службы Systemd с рут-доступом в Ubuntu 16.04

У меня есть служебный файл для mongodb по адресу /lib/systemd/system/mongod.service

и мой файл содержит следующие данные, как показано ниже

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --fork --config /etc/mongod.conf
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

Так что во время выполнения команды, как показано ниже

sudo /usr/bin/mongod --quiet --fork --config /etc/mongod.conf

моя команда выполняется успешно, но при входе в служебный файл она получает ошибку из-за отсутствия рут-доступа.

Поэтому я хочу запустить файл службы systemd с правами суперпользователя. Любое предложение будет оценено, и спасибо заранее

2 ответа

Решение

Решил проблему, чтобы запустить службу как демон, я должен дать полные права на базу данных Mongodb и путь к журналу для User=mongodb & Group=mongodb, выполнив следующие команды

sudo chown -R mongodb:mongodb /var/lib/mongodb

sudo chown -R mongodb:mongodb /var/log/mongodb

mongodb.service файлы обычно включают в себя:

User=mongodb
Group=mongodb

Так что ваша проблема в другом месте. Вы должны опубликовать точную ошибку, которую вы описываете как "Ошибка из-за отсутствия корневого доступа", и команду, которую вы запускаете, которая ее генерирует.

В будущем, лучший сайт для systemd связанные вопросы http://unix.stackexchange.com/

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