Неопознанный сервис 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*
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
- 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 - sudo apt-get update
- ***Не в направлениях монго: скорее то, что я получил, прочитав комментарии выше:
sudo apt-get install mongodb
*** На данный момент версия, установленная монго, является более старой версией. . для меня, т.е.
- sudo apt-get install -y mongodb-org
***Теперь все установлено правильно
- ***Наконец, согласно оператору @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, вы должны увидеть, что сервер активен.
Читайте также: