2013-09-10 3 views
195

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

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

+1

Итак, как вы знаете, что это правильный сервис, если вы не знаете его имя? Я могу добавить много сценариев инициализации в /etc/init.d/ с именами, содержащими посты postgres (хотя это было бы бессмысленно!) И как вы можете знать, что это сервис, который вы хотели бы остановить? Plz добавить некоторое объяснение для вашего контекста – Stefan

+1

@Stefan, поскольку я новичок в командах linux. Я хотел бы знать, не знаю ли я правильного имени службы, но частично использую часть имени службы или как имя могу найти то же самое – abcd

+1

Вы можете использовать списки обслуживания или ps -ef и проанализировать выходные данные. Во всяком случае, я не думаю, что это хорошая идея, прекращающая услуги, которые вы * думаете *, чтобы остановить, но не обязательно. Поэтому вы должны составить список с реальными именами служб, запущенных на машине, которые вы хотели бы остановить. Если вы считаете, что останавливать «стандартные» службы, такие как postgres, mysql, http, вы можете легко найти имена служб. – Stefan

ответ

347

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

service --status-all 

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

+3

Спасибо. В документации не указано, что означают символы рядом с каждой службой. Я предполагаю, что «+» означает, что он работает, а «-» означает, что это не так ... тогда есть «?» рядом со многими. + означает запуск? – Oscar

+84

"+" начато "-" остановлено "?" unknown [источник] (http://ubuntuforums.org/showthread.php?t=1574977) – gkiko

+0

Как бы это сделать на redhat (centos) – PolarisUser

31

Возможно, что вы хотите, это команда ps;

ps -ef 

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

ps -ef | grep postgres 
21

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

sudo service --status-all 

Чтобы получить список выскочка заданий запустить эту команду:

sudo initctl list 
59

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

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

sudo service --status-all | grep postgres 

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

sudo service postgresql status 
+4

Не вижу эффекта grep (также используя Ubuntu 12.04). –

+0

То же самое здесь @Rich. – fakewaffle

+2

Правильный способ grep: 'sudo service --status-all 2> & 1 | grep postgres' –

5

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

ps aux 

Чтобы проверить собственную службу:

ps aux | grep postgres 
0

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

[[email protected] ~]# 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... 
6

Там есть простой способ проверить, если служба запущена

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 
+0

Это работает, только если его сетевая услуга. – Molomby

+0

Да, точно ... –

0

Для CentOS можно ниже команды работали для меня (:

locate postgres | grep service 

Выход:

/USR/Библиотека/firewalld/услуги/postgresql.xml

/usr/lib/systemd/system/-9.3.service PostgreSQL

sudo systemctl status postgresql-9.3.service 
0

пробег

пс -ef | grep

как если вы хотите, чтобы весь Java realted процесса дать Java или если у вас есть имя процесс места имя

Смежные вопросы