ป้องกัน PostgreSQL ไม่ให้เริ่มการบูทใน Ubuntu


28

ฉันใช้ PostgreSQL 9.2 และทำงานโดยอัตโนมัติเมื่อฉันเริ่มระบบ (Kubuntu)

ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร

ฉันต้องเริ่มด้วยตนเองและฉันไม่ต้องการให้เริ่มต้นแบบอัตโนมัติเพราะต้องดูที่คอนโซล

คำตอบ:


48

Ubuntu หรือ Debian สามารถเรียกใช้ PostgreSQL หลายอินสแตนซ์และให้วิธีการเริ่ม / หยุด / เริ่มต้นแต่ละคลัสเตอร์โดยอัตโนมัติ

ควรมีไฟล์ชื่อstart.confข้างใน/etc/postgresql/9.2/main(หรือมากกว่า / etc / postgresql / < version > / < clustername >) พร้อมเนื้อหาอธิบายตนเองเหล่านี้:

# การกำหนดค่าเริ่มต้นโดยอัตโนมัติ
# auto: เริ่ม / หยุดคลัสเตอร์โดยอัตโนมัติในสคริปต์เริ่มต้น
# manual: อย่าเริ่ม / หยุดในสคริปต์ init แต่อนุญาตการเริ่มต้นด้วยตนเอง
# pg_ctlcluster
# disabled: ไม่อนุญาตการเริ่มต้นด้วยตนเองด้วย pg_ctlcluster (สามารถทำได้ง่าย ๆ
# circumvented และมีไว้เพื่อป้องกันเพียงเล็กน้อยเท่านั้น
# อุบัติเหตุ)

รถยนต์

หากคุณแทนที่autoด้วยตนเองคุณสามารถเริ่มต้นอินสแตนซ์ PostgreSQL เฉพาะเมื่อต้องการด้วยคำสั่ง:

sudo pg_ctlcluster 9.2 main start

สำหรับการดูที่คอนโซลสิ่งที่คุณควรต้องการแทนคือให้รันในเทอร์มินัลเมื่อคุณทำงานกับฐานข้อมูล:

tail -f /var/log/postgresql/postgresql-9.2-main.log

3

ในระยะสั้น

คำสั่ง/usr/sbin/update-rc.dถูกใช้เพื่อเริ่มหยุดเปิดใช้งานหรือปิดใช้งานบริการ (เช่นลบลิงก์สคริปต์ init สไตล์ System-V จาก /etc/init.d/)

พิมพ์man update-rc.dเพื่อทำความคุ้นเคยกับคำสั่งและพารามิเตอร์

นี่คือตัวอย่างจากหน้าคู่มือupdate-rc.d ubuntu 16.10 (yakkety) :

update-rc.d -f foobar remove
update-rc.d foobar stop 20 2 3 4 5

จากนั้นพิมพ์บางอย่างตามบรรทัดของsudo update-rc.d [service] disableบริการใด ๆ ที่ระบุไว้ในไดเรกทอรี /etc/init.d/ ของคุณ ที่จะป้องกัน [บริการ] จากการเริ่มต้นในการบูต หากคุณต้องการปิดบริการทันทีลองsudo service [service] stop

ระยะยาว

คุณอาจไม่จำเป็นต้องเรียกใช้ PostgreSQL ด้วยตนเองเพื่อดูผลลัพธ์ของคอนโซล คุณเพียงแค่ต้องบันทึกผลลัพธ์นั้นและปรับแต่งไฟล์บันทึก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.