Проверьте, работает ли определенная служба в Ubuntu

186

Я не знаю имя службы, но хотел бы остановить службу, проверив ее статус. Например, если я хочу проверить, работает ли служба PostgreSQL, но я не знаю имя службы, то как я могу проверить ее статус

Я знаю команду для проверки состояния, если известно имя службы.

  • 1
    Так как вы узнаете, что это правильный сервис, если не знаете его название? Я могу добавить множество сценариев инициализации в /etc/init.d/ с именами, содержащими ключевое слово postgres (хотя это было бы бессмысленно!), И как узнать, что это служба, которую вы хотели бы остановить? Пожалуйста, добавьте некоторые объяснения для вашего контекста
  • 1
    @Stefan, поскольку я новичок в командах Linux, я хотел бы знать, если я не знаю правильное имя службы, но частично используя часть имени службы или подобное имя, я могу найти то же самое
Показать ещё 2 комментария
Теги:
service
ubuntu-12.04

8 ответов

318
Лучший ответ

У меня нет окна Ubuntu, но на Red Hat Linux вы можете увидеть все запущенные службы, выполнив следующую команду:

service --status-all

В списке + указано, что служба запущена, - указывает, что служба не запущена, ? указывает, что состояние службы не может быть определено.

  • 3
    Благодарю. В документации не сказано, что означают символы рядом с каждым сервисом. Я предполагаю, что "+" означает, что он работает, а "-" означает, что это не так ... тогда есть "?" рядом со многими. + значит бегать?
  • 87
    "+" запущен "-" остановлен "?" неизвестный источник
Показать ещё 6 комментариев
60

Для Ubuntu (проверено с 12.04)

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

sudo service --status-all | grep postgres

Или вы можете использовать другой способ, если знаете правильное имя службы:

sudo service postgresql status
  • 4
    Я не вижу эффекта grep (также использующего Ubuntu 12.04).
  • 0
    То же самое здесь @Rich.
Показать ещё 2 комментария
30

Возможно, вам нужна команда ps;

ps -ef

покажет вам все запущенные процессы. Тогда, если у вас есть представление о том, что вы ищете, используйте grep для фильтрации;

ps -ef | grep postgres
  • 2
    Иногда имя процесса не совпадает с именем службы.
22

Если вы выполните следующую команду, вы получите список услуг:

sudo service --status-all

Чтобы получить список старших заданий, выполните следующую команду:

sudo initctl list
5

Вы можете использовать следующую команду, чтобы проверить список всех служб.

ps aux 

Чтобы проверить свой сервис:

ps aux | grep postgres
4

Существует простой способ проверить, работает ли служба

systemctl status service_name

Try:

systemctl status postgres
2

наилучшим способом является использование инструмента nmap в терминале. nmap - полезный инструмент, который анализирует систему вверх, используя ее IP Address, а затем показывает всю активированную сеть services.

откройте terminal и используйте этот пример:

~$ nmap 192.168.1.3/24

Starting Nmap 5.21 ( http://nmap.org ) at 2016-05-16 22:49 IRDT
Nmap scan report for 192.168.1.3
Host is up (0.00020s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
23/tcp   open  telnet
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
3389/tcp open  ms-term-serv
3689/tcp open  rendezvous
  • 1
    Это работает только если это сетевой сервис, очевидно.
  • 0
    Да, именно ...
0

Грязный способ поиска запущенных сервисов. (иногда это не точно, потому что некоторые пользовательские script не имеют параметра | status |)

[root@server ~]# for qw in `ls /etc/init.d/*`; do  $qw status | grep -i running; done
auditd (pid  1089) is running...
crond (pid  1296) is running...
fail2ban-server (pid  1309) is running...
httpd (pid  7895) is running...
messagebus (pid  1145) is running...
mysqld (pid  1994) is running...
master (pid  1272) is running...
radiusd (pid  1712) is running...
redis-server (pid  1133) is running...
rsyslogd (pid  1109) is running...
openssh-daemon (pid  7040) is running...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню