Неопознанный сервис ubuntu, что делать

Обновлено: 21.11.2024

Я только что установил mongoDB на Ubuntu 14.0.4. Я попытался запустить оболочку, но получаю сообщение об отказе в соединении.

Поэтому я решил попробовать перезапустить службу, но это тоже не помогло. Я получаю следующее сообщение об ошибке:

что я уже пробовал:

Я удалил файл блокировки, а затем повторил команду, но она по-прежнему не работает, как вы можете видеть ниже:

Но я могу запустить его с помощью /etc/init.d, как показано ниже:

Буду признателен за любые идеи о том, почему я не могу запустить его с помощью сервисной команды. Из того, что я прочитал, я должен использовать sudo service mongodb

Для debian из репозитория 10gen, между 2.4.x и 2.6.x, они переименовали сценарий инициализации /etc/init.d/mongodb в /etc/init.d/mongod, а файл конфигурации по умолчанию из / etc/mongodb.conf в /etc/mongod.conf, а также файлы PID и блокировки из «mongodb» в «mongod». Это сделало обновление болезненным, и я нигде не вижу упоминания об этом в их документах. В любом случае, решение состоит в том, чтобы удалить старые версии «mongodb»:

Теперь посмотрите, какие изменения конфигурации вам нужно сохранить, и поместите их в mongod.conf.

Мне ничего не помогло, но после консультации с опытным товарищем по devops я нашел решение

создать файл /lib/systemd/system/mongod.service с содержимым

тогда должны работать команды запуска/остановки

Для справки: у меня установлена ​​Ubuntu 14.04 LTS, MongoDB 3.2.9 из

Однажды я получил ту же ошибку. Используйте это:

1.Узнайте статус своей службы mongo:

2.Если он не запустился, почините его следующим образом:

И еще раз проверьте, запущена ли служба снова(1)

Я думаю, вы установили версию mongodb не для того системного дистрибутива.

Посмотрите, как установить mongodb для Ubuntu и Debian:

У меня была похожая проблема, и произошло то, что я устанавливал пакеты Ubuntu в Debian

Если вы используете Ubuntu 16.04 и столкнулись с нераспознанной ошибкой службы, эти инструкции помогут вам ее исправить:-

Обязательно измените номер версии на соответствующую последнюю версию и сохраните файл.

Установка Откройте окно терминала и введите команду sudo apt-get update && sudo apt-get install -y mongodb-org

Позвольте установке завершиться.

Запуск MongoDB Чтобы запустить базу данных, введите команду sudo service mongodb start . Теперь вы сможете ввести команду, чтобы увидеть, что MongoDB работает: systemctl status mongodb

Решение для Ubuntu 16.04 Если вы используете Ubuntu 16.04, вы можете столкнуться с ошибкой mongodb: нераспознанная служба из-за переключения с upstart на systemd. Чтобы обойти это, выполните следующие действия.

Если вы добавили /etc/apt/sources.list.d/mongodb-org.list , удалите его с помощью команды sudo rm /etc/apt/sources.list.d/mongodb-org.list

Обновите apt с помощью команды sudo apt-get update

Установите официальную версию MongoDB из стандартных репозиториев с помощью команды sudo apt-get install mongodb, чтобы правильно настроить службу

Удалите то, что вы только что установили, с помощью команды sudo apt-get remove mongodb && sudo apt-get autoremove

Теперь выполните шаги с 1 по 5, перечисленные выше, чтобы установить MongoDB; это должно переустановить последнюю версию MongoDB с уже установленными службами systemd. Когда вы вводите команду systemctl status mongodb, вы должны увидеть, что сервер активен.

Это простое решение, которое сработало для меня с той же проблемой (я думаю): mv /var/lib/mongodb /var/lib/mongodb_backup mkdir /var/lib/mongodb chmod 700 /var/lib/mongodb chown mongodb:daemon /var/lib/mongodb systemctl перезапуск mongodb или перезапуск службы mongod

Я использую rhel6.9 и скопировал свой служебный файл в папки /etc/systemd/system и /usr/lib/systemd/system/. Раньше я устанавливал службы с помощью systemctl, но я никогда не пробовал это с командой службы старой школы.

Теперь служба mytest start не работает, пишет, что это неопознанная служба. В systemctl вы запускаете daemon-reload , но как это сделать с сервисом ?

1 Ответ 1

service — это команда «высокого уровня», используемая для запуска, перезапуска, остановки и состояния
служб в различных Unix и Linux. В зависимости от диспетчера служб «нижнего уровня» служба перенаправляется на разные двоичные файлы.

Например, в CentOS 7 она перенаправляется на systemctl , а в CentOS 6 она напрямую вызывает относительную /etc/init.d сценарий. С другой стороны, в более старых версиях Ubuntu он перенаправляется на upstart.

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

В RHEL6 вы сначала добавляете сервис:

затем включить или отключить:

Проверьте, включен ли сервис:

Вы также можете в RHEL7 и более поздних версиях включить службу таким образом для запуска при следующей загрузке или другом триггере:

Обратите внимание, что все последние версии systemctl предполагают, что ".service" отсутствует.

Кроме того, Systemd объединяет все, что вы раньше делали с chkconfig и сервисом, с помощью одной команды, systemctl , поэтому в долгосрочной перспективе с этим проще справиться.

См. также man update-rc.d :

update-rc.d требует предоставления информации о зависимостях и уровне выполнения в заголовке комментария LSB сценария init.d всех сценариев init.d.

Добавьте такой блок в скрипт init.d:

Команда service представляет собой сценарий-оболочку, который позволяет системным администраторам запускать, останавливать и проверять состояние служб, не слишком беспокоясь об используемой системе инициализации. До появления systemd он был оболочкой для скриптов /etc/init.d и команды initctl Upstart, а теперь это оболочка для этих двух и systemctl.

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

ИМХО, это большая куча вздора от кого-то, и нужно внести изменения. /разглагольствование.

сначала я очистил свой монго, чтобы знать, что все с нуля с помощью этой команды:
sudo apt-get purge mongodb-org*

  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
  2. ubuntu 16.04:
    echo "deb [arch=amd64,arm64] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
  3. sudo apt-get update
  4. ***Не в направлениях монго: скорее то, что я получил, прочитав комментарии выше:
    sudo apt-get install mongodb
    *** На данный момент версия, установленная монго, является более старой версией. . для меня, т.е.
  1. sudo apt-get install -y mongodb-org
    ***Теперь все установлено правильно
  1. ***Наконец, согласно оператору @Zx-EvM && @aseering выше указано, что вместо команды запуска mongod вы должны использовать следующую команду для запуска mongo:
    sudo service mongodb start

Итак, что это делает в целом?

Он устанавливает базу данных mongod в подсистему Windows ubuntu 16.0.4 linux. Обновляет его. и запускает его с помощью команды start. надеюсь, это поможет кому-то, и все в этой теме было замечательно, но немного многословно и не в том смысле, для которого это резюме.

Другие ответы:

После изучения я решил эту проблему следующим образом:

Привет, @lobosan. Хотя таким образом можно запустить монго с помощью его «исполняемого файла mongod», но я думаю, что это может быть недостаточно безопасным и простым. Потому что вы должны вручную запускать службу этой командой каждый раз, когда мы перезагружаем компьютер.
"Сервис" более полезен (как в Windows, так и в Ubuntu). Например, мы можем остановить или перезапустить службу с помощью службы mongod stop/restart вместо того, чтобы убивать процесс вручную.
Однако мы все еще не можем решить проблему, почему мы не можем запустить его через запуск службы mongod, как говорится в руководстве.

Кстати, mongo-org уже предоставил нам файл конфигурации в /etc/mongod.conf. Так что лучше использовать mongod --fork --config /etc/mongod.conf, чтобы было проще (настроить службу).

попробуйте это, это работает на MongoDB версии 4.20

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - &&
echo "deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list &&
sudo apt-get update &&
sudo apt-get install -y mongodb-org

затем запустите
sudo service mongod start/stop/status

если не работает, попробуйте
sudo mongod --dbpath ~/mongodb/are

обязательно создайте папки ~/mongodb/db

Связанные вопросы:

привет, вот как я заработал, я использую Ubuntu для Windows 10 (на виртуальной машине Windows - я не знаю.

У меня такая же проблема с Ubuntu 17133.1, установленной в Microsoft Store. Перезагрузка действительно устраняет ошибку b.

Номер моей сборки Windows: Microsoft Windows [версия 10.0.17134.590]. Я установил nodejs, используя это.

@0xbadfca11 - Спасибо за внимание; это очень важная новость @yhvicey - у вас есть ~/.bash_profile и .

@onomatopellan в случае, если установлен build-essential, это должно быть: чтобы избежать удаления g++ Но иначе.

Это решит мою проблему 👍 :+1, если это работает для вас. Используйте следующий шаблон сообщения об ошибке .

Как вы видите свою переменную DISPLAY в среде Linux? В настоящее время вам нужно указать.

Та же проблема Windows 10 Enterprise версии 1803. Я нахожусь в корпоративной сети, в которой есть несколько групповых политик.

Многие вещи, которые люди используют каждый день, никогда не будут работать: Любой совет chmod, похоже, не разрешает редактирование.

Я только что установил mongoDB на Ubuntu 14.0.4. Я попытался запустить оболочку, но получаю сообщение об отказе в соединении.

Поэтому я решил попробовать перезапустить службу, но это тоже не помогло. Я получаю следующее сообщение об ошибке:

что я уже пробовал:

Я удалил файл блокировки, а затем повторил команду, но она по-прежнему не работает, как вы можете видеть ниже:

Но я могу запустить его с помощью /etc/init.d, как показано ниже:

Буду признателен за любые идеи о том, почему я не могу запустить его с помощью сервисной команды. Из того, что я прочитал, я должен использовать sudo service mongodb

Этот вопрос помечен mongodb ubuntu ubuntu-14.04

~ Вопрос задан 2014-11-10 20:09:23

11 ответов

Напишите mongodb вместо mongod

~ Отвечено 23.07.2015 11:39:47

Однажды я получил ту же ошибку. Используйте это:

1.Узнайте статус своей службы mongo:

2.Если он не запустился, почините его следующим образом:

И еще раз проверьте, запущена ли служба снова(1)

~ Ответ дан 2014-11-12 02:55:43

Для меня решением было заменить

~ Отвечено 2016-03-11 05:45:44

Необходимо убедиться, что файл (например, /etc/init.d/mongodb) имеет права на выполнение.

~ Ответ дан 2015-05-08 14:36:28

Для debian из репозитория 10gen, между 2.4.x и 2.6.x, они переименовали сценарий инициализации /etc/init.d/mongodb в /etc/init.d/mongod, а файл конфигурации по умолчанию из / etc/mongodb.conf в /etc/mongod.conf, а также файлы PID и блокировки из «mongodb» в «mongod». Это сделало обновление болезненным, и я нигде не вижу упоминания об этом в их документах. В любом случае, решение состоит в том, чтобы удалить старые версии «mongodb»:

Теперь посмотрите, какие изменения конфигурации вам нужно сохранить, и поместите их в mongod.conf.

~ Отвечено 2015-03-26 20:46:58

Я установил сервер mongo на Debian Jessie по инструкции с официального сайта.

Он не запустился после рекомендованной команды sudo service mongod перезапуск с той же ошибкой - mongodb: нераспознанный сервис.

Просмотрев содержимое установленного пакета, я заметил, что он содержит только модуль службы Systemd, но не скрипт инициализации SystemV:

Но моя система работала на SysV init:

Итак, теперь есть 2 варианта:

  • (Продолжить на SysV) Напишите сценарий инициализации sysV вручную, как упоминалось выше @khylo
  • (переключитесь на SystemD) и запустите systemctl start mongod

Мне ничего не помогло, я нашел решение:

создать файл /lib/systemd/system/mongod.service с содержимым

тогда должны работать команды запуска/остановки

Для справки: у меня установлена ​​Ubuntu 14.04 LTS, MongoDB 3.2.9 из

Вы можете использовать команду mongod вместо mongodb , если вы обнаружите какие-либо проблемы с dbpath в mongo, вы можете использовать мой ответ по ссылке ниже.

Я думаю, вы установили версию mongodb не для того системного дистрибутива.

Посмотрите, как установить mongodb для Ubuntu и Debian:

У меня была похожая проблема, и произошло то, что я устанавливал пакеты Ubuntu в Debian

~ Отвечено 2015-02-24 12:26:53

Это простое решение, которое сработало для меня с той же проблемой (я думаю): mv /var/lib/mongodb /var/lib/mongodb_backup mkdir /var/lib/mongodb chmod 700 /var/lib/mongodb chown mongodb:daemon /var/lib/mongodb systemctl перезапуск mongodb или перезапуск службы mongod

Если вы используете Ubuntu 16.04 и столкнулись с нераспознанной ошибкой службы, эти инструкции помогут вам ее исправить:-

Обязательно измените номер версии на соответствующую последнюю версию и сохраните файл.

Установка Откройте окно терминала и введите команду sudo apt-get update && sudo apt-get install -y mongodb-org

Позвольте установке завершиться.

Запуск MongoDB Чтобы запустить базу данных, введите команду sudo service mongodb start . Теперь вы сможете ввести команду, чтобы увидеть, что MongoDB работает: systemctl status mongodb

Решение для Ubuntu 16.04 Если вы используете Ubuntu 16.04, вы можете столкнуться с ошибкой mongodb: нераспознанная служба из-за переключения с upstart на systemd. Чтобы обойти это, выполните следующие действия.

Если вы добавили /etc/apt/sources.list.d/mongodb-org.list , удалите его с помощью команды sudo rm /etc/apt/sources.list.d/mongodb-org.list

Обновите apt с помощью команды sudo apt-get update

Установите официальную версию MongoDB из стандартных репозиториев с помощью команды sudo apt-get install mongodb, чтобы правильно настроить службу

Удалите то, что вы только что установили, с помощью команды sudo apt-get remove mongodb && sudo apt-get autoremove

Теперь выполните шаги с 1 по 5, перечисленные выше, чтобы установить MongoDB; это должно переустановить последнюю версию MongoDB с уже установленными службами systemd. Когда вы вводите команду systemctl status mongodb, вы должны увидеть, что сервер активен.

Читайте также: