Где процесс обслуживания?

0

В UBUNTU, service postgresql status списки

  Process: 18534 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 18534 (code=exited, status=0/SUCCESS)

но когда я проверяю sudo ps -ax | grep 18534 ничего не указано


ЗАМЕТКИ

EDIT1 для запроса @DanielB, но мне нужна простая команда, которая показывает любой оказание услуг PID.

Здесь свалка more /lib/systemd/system/postgresql.service,

# systemd service for managing all PostgreSQL clusters on the system. This
# service is actually a systemd target, but we are using a service since
# targets cannot be reloaded.

[Unit]
Description=PostgreSQL RDBMS

[Service]
Type=oneshot
ExecStart=/bin/true
ExecReload=/bin/true
RemainAfterExit=on

[Install]
WantedBy=multi-user.target

EDIT2

PostgreSQL выше был моим локальным сервером ... Сейчас я тестирую "новую, чистую и блестящую" каплю DigitalOcean с UBUNTU 16 LTS и Postgresql 9.X ...

root@myServer:~# service postgresql status
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Dom 2016-12-18 17:47:09 UTC; 2 weeks 4 days ago
 Main PID: 8703 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
      CPU: 0
   CGroup: /system.slice/postgresql.service

Dez 18 17:47:09 myServer systemd[1]: Starting PostgreSQL RDBMS...
Dez 18 17:47:09 myServer systemd[1]: Started PostgreSQL RDBMS.
Dez 18 17:47:14 myServer systemd[1]: Started PostgreSQL RDBMS.


root@myServer:~# sudo ps -ax | grep  8703
 3702 pts/0    S+     0:00 grep --color=auto 8703

root@myServer:~# sudo service postgresql restart

root@myServer:~# sudo ps -ax | grep  8703
 3760 pts/0    S+     0:00 grep --color=auto 8703


root@myServer:~# service postgresql status
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sex 2017-01-06 16:06:07 UTC; 8s ago
  Process: 3755 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 3755 (code=exited, status=0/SUCCESS)

Jan 06 16:06:07 myServer systemd[1]: Starting PostgreSQL RDBMS...
Jan 06 16:06:07 myServer systemd[1]: Started PostgreSQL RDBMS.


sudo ps -ax | grep  3755
 3780 pts/0    S+     0:00 grep --color=auto 3755
Peter Krauss
источник
Что ж, /bin/true это явно не сервис. Он также помечен как выход. Пожалуйста, предоставьте содержание /lib/systemd/system/postgresql.service,
Daniel B
Привет @DanielB, я редактировал с дампом.
Peter Krauss
Для других услуг, как service postfix status все в порядке (!). Проблема с PostgreSQL, возможно, является своего рода «активацией потока» ... Возможно, мне нужна служба в top, это?
Peter Krauss
1
Мне кажется, что postgresql не работает Процессы имеют код завершения после выхода, поэтому нет смысла упоминать код завершения текущего запущенного процесса.
janos
1
@janos Этот сервис явно не запускает PostgreSQL. Это часть какого-то плохого взлома.
Daniel B

Ответы:

1

Там нет ни одного, потому что, как вы можете видеть себя из содержимого устройства, postgresql.service на самом деле не запускает ни одного демона. Он существует просто как «родительский» сервис для группировки различных экземпляров postgresql@.service (то есть перезагрузить их все сразу). Вместо этого взгляните на:

systemctl status postgresql@\*.service
grawity
источник
Отлично! Хм ... Но это общее? systemctl status postfix@\*.service ничего не показывать, несмотря на service postfix status показать PID.
Peter Krauss
@PeterKrauss: На самом деле это две разные службы. postgresql@.service был явно назван так, чтобы быть несколькими экземплярами (см. его содержание), а позже, отдельный postgresql.service был добавлен для выполнения трюка с «перезагрузкой» - возможно, потому, что тогда systemctl еще не поддерживал подстановочные знаки, или, возможно, кто-то просто чувствовал себя ленивым.
grawity
Хм .. хорошо (!), Синтаксис systemctl status postfix.serviceработает нормально! Так что это универсально! "используйте systemctl вместо службы" - лучший ответ, спасибо!
Peter Krauss
1

PID службы, кажется, нигде не указан здесь:

  Process: 18534 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 18534 (code=exited, status=0/SUCCESS)

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

Если служба postgres запущена, в системе GNU / Linux ее PID можно найти в выводе sudo netstat -ntlp | grep posgres, например:

tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 3738/postgres

В этом виде вывода 3738 является PID.

Как примечание, чтобы проверить процесс по PID, вместо запуска ps -ax | grep the-pidлучше сделать ps -p the-pid,

janos
источник