Baru saja memutakhirkan sistem saya dari 14,04. LTS ke 16.04.1 LTS, postgresql tidak dimulai pada systemd:
/etc/init.d/postgresql start
[ ok ] Starting postgresql (via systemctl): postgresql.service
# /etc/init.d/postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Вт 2016-08-09 13:40:51 MSK; 3min 23s ago
Process: 23142 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 23142 (code=exited, status=0/SUCCESS)Seems that
Tampaknya skrip systemd berisi data yang salah:
# cat /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
Apa yang harus menjadi skrip yang benar untuk postgresql?
16.04
systemd
postgresql
Artur Eshenbrener
sumber
sumber
systemctl enable [email protected]
itu yang kamu butuhkan.systemctl edit [email protected]
untuk membuat file override dengan arahan systemd seperti: [Layanan] Bagus = 15 IOSchedulingClass = 2 IOSchedulingPriority = 7Systemd harus menggunakan skrip dari
/etc/init.d
. Sebaliknya, systemd menggunakan beberapa jenis file template. Untuk memperbaikinya, ikuti langkah-langkah itu:Hapus skrip layanan yang tidak valid:
# rm /lib/systemd/system/postgresql.service
Muat ulang skrip daemon:
# systemctl daemon-reload
Aktifkan layanan postgresql:
# systemctl enable postgresql
Setelah itu, Anda akan dapat memulai postgres dengan varian disukai:
sudo systemctl start postgresql
,sudo service postgresql start
, atausudo /etc/init.d/postgresql start
. Untuk memeriksa bahwa postgresql benar-benar menjalankan, silahkan cek status layanan:sudo systemctl status postgresql
. Itu bisa terlihat seperti:sumber
systemctl _action_ postgresql@_version_
berjalanSaya memiliki masalah yang sama setelah membersihkan postges9 dan menginstal 10 di ubuntu16 saya. Awalnya saya mengedit file /lib/systemd/system/postgresql.service dengan konten berikut:
Dan saya dapat menggunakan systemctl restart / stop / start untuk mengontrol layanan postgresql. Namun, untuk beberapa alasan, file di atas ditimpa (mungkin setelah pembaruan sistem) dan saya tidak bisa menjalankan perintah systemctl untuk memulai dan menghentikan server postgresql lagi. Setelah membaca, saya menyadari bahwa Anda tidak seharusnya mengedit file di atas. Sebagai gantinya Anda harus menggunakan systemctl edit foo untuk menimpa default. Setelah mengikuti solusi yang disarankan oleh tautan berikut, sistem saya tampaknya berfungsi dengan baik dengan postgresql.
Bagaimana cara mengganti atau mengkonfigurasi layanan systemd?
sumber
Bukan solusi terbaik, tetapi ini menyelesaikan masalah tanpa harus menyelami apa pun. Tambahkan ini ke cron:
sumber