วิธีการติดตั้งสคริปต์ init.d


71

ฉันพยายามติดตั้งสคริปต์ init.d เพื่อเรียกใช้คื่นฉ่ายสำหรับการจัดตารางงาน นี่คือขั้นตอนที่ฉันปฏิบัติตาม:

  • คัดลอกไฟล์celerydและวางในโฟลเดอร์/etc/init.d/
  • สร้างไฟล์การกำหนดค่าcelerydในโฟลเดอร์/ etc / default /

ตอนนี้เมื่อฉันพยายามที่จะเริ่มมันsudo /etc/init.d/celeryd startก็เกิดข้อผิดพลาดsudo: /etc/init.d/celeryd: command not found

ฉัน googled เกี่ยวกับวิธีการติดตั้ง init.d ฉันได้รับคำถามนี้

มันบอกว่าจะออกuname -aและเมื่อฉันฉันได้รับนี้:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

และมันยังบอกว่าใช้ utils ต้องการinsservเปิดใช้งานสคริปต์ init.d พยายามดังนั้น:

insserv /etc/init.d/celeryd แต่มันผิดพลาด insserv: command not found

ดังนั้นผมจึงพยายามที่จะติดตั้งinsserv sudo apt-get install insservแต่มันบอกว่าติดตั้ง aleady:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

ดังนั้นวิธีการติดตั้งสคริปต์ init.d? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.

update1:

เมื่อฉันพยายาม:

$ sh -x /etc/init.d/celeryd start

errorsมันเผยให้เห็นบางส่วน อาจเป็นสาเหตุที่บริการไม่เริ่มทำงาน

Update2:

ผมเคลียร์ทุกข้อผิดพลาดเมื่อผมทำงาน$ sh -x /etc/init.d/celeryd startแต่ยังคงsudo /etc/init.d/celeryd startพ่นcommand not foundข้อผิดพลาด


ฉันไม่มีเวลาสำหรับคำตอบในตอนนี้ แต่ถ้าคุณต้องการให้มันทำงานเป็นส่วนหนึ่งของการเริ่มต้นของคุณฉันคิดว่าคุณต้องเพิ่มลิงค์ไปยังสคริปต์ของคุณในไดเรกทอรี runlevel ต่างๆดังนั้น Linux จะจัดการเริ่มต้นและหยุดมัน คุณ. (/etc/rcuty0-6 เหมือนกัน) กระบวนการนี้จะถูกแทนที่ด้วยวิธีการที่ใหม่กว่า (ฉันคิดว่ามันเรียกว่าการพุ่งพรวด) แต่ฉันไม่ได้ดูเรื่องนี้เลย ลิงค์ในโพสต์ของคุณพูดถึงเรื่องนี้บ้าง
โจ

คำตอบ:


55

คุณcelerydสคริปต์อาจจะไม่ปฏิบัติการที่ว่าทำไมจะกลับมาsudo /etc/init.d/celeryd command not foundดังนั้นคุณต้องทำให้มันใช้งานได้ก่อน

หากต้องการทำเช่นนั้นให้เรียกใช้คำสั่งต่อไปนี้:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

บรรทัดแรกการเปลี่ยนแปลงสิทธิ์ไปและบรรทัดที่สองเพื่อให้แน่ใจว่าเจ้าของเจ้าของและกลุ่มของไฟล์เป็น-rwxr-xr-xroot

เมื่อเสร็จแล้วฉันคิดว่าคุณจะต้องใช้sudo /etc/init.d/celeryd startเพื่อเริ่มภูต


70

เมื่อคุณคัดลอกสคริปต์เข้าที่อย่าลืมทำให้มันเป็นไฟล์เอ็กซีคิวท์และรูทเป็นเจ้าของ:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

เมื่อคุณติดตั้งแล้วคุณสามารถตั้งค่าให้เริ่มโดยอัตโนมัติเมื่อบู๊ตด้วย:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable

update-rc.dนี้จะได้รับการพิจารณาเป็นที่ดีที่สุดคำตอบสาเหตุของการชี้ไปที่
MAChitgarha

3

หากคุณได้รับcommand not foundข้อผิดพลาดเมื่อคุณเรียกใช้insservคุณอาจแก้ไขได้โดยการเรียกใช้คำสั่งต่อไปนี้:

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

จากนั้นดูinsserv -hหรือman insservขอความช่วยเหลือ

นอกจากนี้คุณสามารถลองด้วย:

sudo update-rc.d celeryd defaults

ที่มา: https://askubuntu.com/a/334043/147044


1

นี่คือลำดับคำสั่งเพื่อเริ่มต้น daemon ของคุณในเวลาบูต:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.