กำลังเรียกใช้สคริปต์พุ่งพรวดใน 17.04?


1

ใช้งาน 17.04 (Zesty Zapus) และพยายามเริ่มต้นสคริปต์พุ่งพรวด แต่ฉันสังเกตเห็นว่าไม่ได้ถูกเรียกใช้งาน /etc/initจากนั้นผมสังเกตเห็นว่าคนธรรมดาไม่ได้อยู่แม้จะเป็นแพคเกจติดตั้งแม้ว่าจะมีจำนวนมากสคริปต์ใน เห็นได้ชัดว่าพวกเขาจะไม่ทำงานตั้งแต่แนะนำการพิมพ์ผิดเช่น cron ไม่มีผลต่อการเริ่มต้น

ฉันจะเรียกใช้สคริปต์ upstart ได้อย่างไร ติดตั้งพุ่งพรวดหรือเรียกใช้ผ่านบาง systemd-layer? การติดตั้งพุ่งพรวดทำลายบางสิ่งบางอย่างเมื่อสคริปต์อื่น ๆ/etc/initทำงานอยู่หรือไม่?


ฉันคิดว่า systemd จะเรียกใช้สคริปต์/etc/init.dถ้าไม่มีไฟล์ในหน่วย/etc/systemd/systemหรือย่อย คุณช่วยให้รายละเอียดเพิ่มเติมเล็กน้อยเกี่ยวกับสิ่งที่คุณพยายามจะทำอย่างไร
Zanna

ขอบคุณสำหรับการตอบกลับ. ฉันกำลังติดตามการสอนเกี่ยวกับdigitalocean.com/community/tutorials/…เกี่ยวกับวิธีการเรียกใช้กงสุลเป็นบริการบน Ubuntu ...
Nicklas Karlsson

โปรดคุณลองใส่สคริปต์/etc/init.dแทนได้/etc/initไหม จะต้องได้รับการอนุญาต 755
Zanna

ไม่มีอะไรเกิดขึ้น (ฉันไม่รู้ด้วยซ้ำว่าสคริปต์รูปแบบพุ่งพรวดสามารถเรียกใช้จาก init.d)
Nicklas Karlsson

โอ้ hmm ฉันเห็นว่ามีสคริปต์ไม่บอก systemd ว่าควรมีบริการดังกล่าวแม้ว่าจะรู้ว่าควรมีบริการดังกล่าวไฟล์ที่/etc/init/dใช้ คุณอาจลองสร้าง symlink โดยสมมติว่าสคริปต์/etc/init.dนั้นมีชื่อว่าconsul:sudo ln -s /etc/init.d/consul /etc/systemd/system/consul.service
Zanna

คำตอบ:


1

เห็นได้ชัดว่าพุ่งพรวดไม่รวมอยู่ในเซิร์ฟเวอร์รุ่น OOTB แม้ว่าจะมีสคริปต์ใน/etc/init(สับสนเล็กน้อย)

ฉันเขียนสคริปต์ upstart ใหม่เป็นไฟล์ systemd unit โดยใช้หน้า wiki ของ Ubuntuส่วนใหญ่ใน systemd สำหรับผู้ใช้ธรรมดาเป็นแนวทางและเปิดใช้งานตามปกติ


1

ขั้นตอนข้างต้นทำงานได้อย่างสวยงามฉันได้ทำขั้นตอนอย่างละเอียดในคำตอบของฉันที่นี่:

env ของฉันมีดังนี้

  1. Ubuntu เวลา 17.10 น
  2. ฉันมีแอพหลามบนเซิร์ฟเวอร์ Gunicorn 19.x ฉันต้องเริ่มต้นแอปพลิเคชันนี้เป็นบริการ

ก่อนอื่นคุณต้องเขียนไฟล์ foo.service

[Unit] 
Description=FooServer 

[Service] 
Restart=on-failure
WorkingDirectory=/path/to/your/working/directory/where the foo lives
ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app
ExecReload=/bin/kill -HUP $MAINPID 
KillSignal=SIGINT 

[Install] 
WantedBy=multi-user.target

ความหมายของทุกคำทางซ้ายมือของเครื่องหมาย '=' และสิ่งที่เทียบเท่าใน (ก่อนหน้านี้) พุ่งพรวดอยู่ในลิงก์https://wiki.ubuntu.com/SystemdForUpstartUsers

เมื่อไฟล์พร้อมใช้งานสมมติว่าคุณตั้งชื่อเป็น 'foo.service' (นามสกุล. บริการเป็นสิ่งสำคัญ)

คุณต้องวางไฟล์ไว้ /lib/systemd/system

หลังจากนั้นคุณต้องเปิดใช้บริการโดยการโทร

systemctl enable foo

ซึ่งจะแจ้งให้คุณป้อนรหัสผ่านรูทของคุณเนื่องจากมันจะสร้าง symlink ในบางโฟลเดอร์ตามการเข้าถึงรูทซึ่งบริการทั้งหมดอยู่ในกลุ่มเดียวกัน

หากคุณมาถึงที่นี่โดยไม่มีการรบกวนคุณก็ดี บริการของคุณจึงถูกสร้างขึ้น เริ่มต้นด้วยการโทร

sudo service foo start

systemctl status fooเพื่อดูสถานะ sudo service foo stopเพื่อหยุดบริการ

ฉันอยู่ในหน้า Gunicorn ทุกวันวันนี้และลองใช้ตัวเลือกที่หลากหลายและไม่มีใครทำงานเลยและในที่สุดก็ใช้งานได้ ขอบคุณ @Zanna และ @Nicklas Karlsson มาก

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