Di UBUNTU, service postgresql status
daftar
Process: 18534 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 18534 (code=exited, status=0/SUCCESS)
tetapi ketika saya menguji sudo ps -ax | grep 18534
tidak ada yang terdaftar.
CATATAN
EDIT1 untuk permintaan @DanielB, tapi aku butuh perintah sederhana yang menunjukkan setiap layanan PID.
Di sini dump 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 di atas adalah server localhost saya ... Sekarang saya menguji dalam DigitalOcean Droplet "baru, bersih, dan bersinar" dengan UBUNTU 16 LTS dan 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
/bin/true
jelas bukan layanan. Itu juga ditandai sebagai keluar. Harap berikan konten/lib/systemd/system/postgresql.service
.service postfix status
tidak apa-apa (!). Masalah dengan PostgreSQL mungkin semacam "aktivasi thread" ... Mungkin saya perlu layanan yang digunakantop
, bukan?postgresql
tidak berjalan. Proses memiliki kode keluar setelah mereka keluar, tidak masuk akal untuk menyebutkan kode keluar dari proses yang sedang berjalan.Jawaban:
Tidak ada, karena seperti yang Anda lihat dari isi unit,
postgresql.service
sebenarnya tidak memulai daemon apa pun. Itu ada hanya sebagai layanan 'induk' untuk mengelompokkan berbagai contoh[email protected]
(yaitu memuat ulang semuanya sekaligus). Alih-alih melihat:sumber
systemctl status postfix@\*.service
tidak menunjukkan apa-apa, meskipunservice postfix status
PID acara.[email protected]
secara eksplisit dinamakan demikian untuk menjadi multi-instance (lihat isinya), dan kemudian, terpisahpostgresql.service
ditambahkan untuk melakukan trik 'memuat ulang' - mungkin karena saat itu systemctl belum mendukung wildcard, atau mungkin seseorang hanya merasa malas.systemctl status postfix.service
, berfungsi dengan baik! Jadi itu generik! "gunakan systemctl bukan layanan" adalah jawaban terbaik, terima kasih!PID layanan tampaknya tidak ditunjukkan di mana pun di sini:
Saya mengatakan itu karena pesan ini berbicara tentang kode keluar, yang tidak masuk akal untuk proses yang berjalan. Hanya proses yang dihentikan yang memiliki kode keluar.
Jika layanan postgres berjalan, dalam sistem GNU / Linux Anda dapat menemukan PID-nya di output
sudo netstat -ntlp | grep posgres
, misalnya:Dalam output seperti ini, 3738 adalah PID.
Sebagai catatan tambahan, untuk memverifikasi proses dengan PID, alih-alih berjalan
ps -ax | grep the-pid
, lebih baik dilakukanps -p the-pid
.sumber