เซิร์ฟเวอร์ ubuntu 16.04: ไม่สามารถให้หัวหน้างานเริ่มต้นโดยอัตโนมัติ


42

ฉันติดตั้งผู้ดูแลบนเซิร์ฟเวอร์ Ubuntu 16.04

$ sudo apt-get install supervisor
$ sudo update-rc.d supervisor defaults

หลังจากรีบูตเครื่องผู้ควบคุมจะไม่เริ่มต้นโดยอัตโนมัติ ตรวจสอบสถานะ:

qinking126@nas:~$ sudo service supervisor status
[sudo] password for qinking126:
● supervisor.service - Supervisor process control system for UNIX
   Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: http://supervisord.org

ฉันไม่แน่ใจว่าทำไมมันไม่ทำงาน (ตาย) ฉันต้องตรวจสอบอะไรเพื่อให้ได้รับการแก้ไข


2
ดูเหมือนว่าคุณกำลังใช้ systemd askubuntu นี้จะช่วยได้หรือไม่?
Jeff Schaller

1
@JeffSchaller ขอบคุณมาก มันช่วย. ทั้งหมดที่ฉันต้องการคือการเรียกใช้ "systemctl เปิดใช้งาน SERVICE.service"
qinking126

คำตอบ:


61

ฉันเชื่อว่าปัญหานี้เป็นข้อบกพร่องบรรจุภัณฑ์ในแพ็คเกจ Supervisor ใน Ubuntu 16.04 และดูเหมือนว่าเกิดจากการสลับไปใช้ systemd:

  • ปัญหานี้ได้รับการรายงานแล้วต้นน้ำในโครงการของหัวหน้างานติดตามปัญหา (ที่ไม่มีอะไรสามารถแก้ไขได้) ในประเด็นที่ 735

  • ฉันถูกกัดโดยปัญหานี้ไม่กี่วันที่ผ่านมาและรู้สึกประหลาดใจที่พบว่าปัญหานี้ไม่เคยถูกรายงานไปยังผู้ดูแลแพคเกจแม้ว่า Ubuntu 16.04 จะวางจำหน่ายมาระยะหนึ่งแล้ว นี่คือเหตุผลที่ฉันตัดสินใจที่จะรายงานเรื่องนี้ไปดูแลแพคเกจในข้อผิดพลาด 1594740

ฉันบันทึกวิธีแก้ปัญหาง่ายๆในข้อผิดพลาด 1594740ที่ไม่ต้องการไฟล์การกำหนดค่าใด ๆ ที่จะสร้าง - คุณเพียงแค่ต้องเปิดใช้งานและเริ่มต้น Supervisor daemon หลังจากการติดตั้งแพคเกจ:

# Make sure Supervisor comes up after a reboot.
sudo systemctl enable supervisor

# Bring Supervisor up right now.
sudo systemctl start supervisor

ฉันไม่แน่ใจว่านี้จะถูกแก้ไขใน Ubuntu 16.04 แต่อย่างน้อยตอนนี้มีสถานที่กลางในการรวบรวมข้อร้องเรียนและการแก้ไขปัญหาเอกสาร (ในข้อผิดพลาด 1594740 , ไม่ได้ในประเด็นที่ 735 )

หากใครถูกกัดโดยปัญหานี้พิจารณาข้อกังวลของคุณในข้อผิดพลาด 1594740เพื่อโน้มน้าวให้ผู้ดูแลแพคเกจเพื่อแก้ไขปัญหานี้ ขอบคุณ!

อัปเดต (2017-03-25):เมื่อวานนี้การแก้ไขปัญหานี้ได้รับการเผยแพร่ไปยังxenial-updatesอันเป็นผลมาจากข้อผิดพลาด 1594740ดังนั้นการติดตั้งใหม่จึงไม่ควรใช้กับปัญหานี้อีกต่อไป


6

ดูที่นี่การเรียกใช้ supervisord โดยอัตโนมัติเมื่อเริ่มต้น

  1. สร้างsupervisord.serviceไฟล์/usr/lib/systemd/systemและใส่เนื้อหาต่อไปนี้ลงในไฟล์นี้ขึ้นอยู่กับระบบ:

    initscripts

  2. sudo systemctl daemon-reload

  3. sudo systemctl enable supervisord.service

  4. sudo systemctl start supervisord.service



1

นี่คือตัวอย่างของไฟล์ที่คุณสามารถใส่ใน / lib / systemd / system /

[Unit]
Description=Supervisord Service

[Service]
Restart=on-failure
RestartSec=42s
User=ubuntu
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisord.conf

[Install]
WantedBy=multi-user.target

ตำแหน่งการตั้งค่าอูบุนตูเริ่มต้นอยู่ที่/etc/supervisord/supervisord.conf
Antti Haapala

@AnttiHaapala ไม่ใช่สำหรับ Ubuntu ของฉันที่ติดตั้ง 16.04 ตำแหน่งที่ถูกต้องคือ: /etc/supervisor/supervisord.conf (โน้ตขาด "d" ถ้าใครสงสัย)
Rishi

@ Yoshi9143 คุณถูกต้อง: D
Antti Haapala

1

ฉันลบผู้ดูแลออกแล้วติดตั้งอีกครั้ง จากนั้นก็ใช้งานได้สำหรับฉัน

sudo apt-get purge supervisor
sudo apt-get install supervisor
cp path/to/file.conf /etc/supervisor/conf.d/
sudo supervisorctl reread
sudo supervisorctl update

0

apt-get install Supervisor บน Ubuntu 16.04.2, ติดตั้ง supervisor 3.2.0 และจะเริ่มโดยอัตโนมัติเมื่อรีบูท

ผู้ควบคุมการติดตั้ง pip - อัปเกรดเป็น 3.3.1 และไม่เริ่มต้นอีกต่อไป

การปรับรุ่นใช้งานกับ Ubuntu 16.04.1


0

ที่CentOSฉันแก้ไขได้โดยการทำงาน cron ในการเริ่มต้นที่ทำงานsupervisord:

เพื่อสร้างงาน cron ที่รันcrontab -eในเทอร์มินัลแล้ววาง@reboot /bin/supervisord( ต้องเป็นพา ธ ไปยัง supervisord ) ที่ส่วนท้ายของงานและบันทึกไว้

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