คำถามติดแท็ก sysvinit

SysVinit คือชุดโปรแกรมและสคริปต์ที่ควบคุมการเริ่มต้นการทำงานและการปิดโปรแกรมอื่น ๆ ทั้งหมด

2
systemd ใช้สคริปต์ /etc/init.d อย่างไร
ฉันเพียงแค่เปลี่ยนไปเดเบียน jessie wdmและสิ่งที่มากที่สุดทำงานโอเครวมทั้งผู้จัดการการแสดงผลกราฟิกของฉัน สิ่งนี้คือฉันไม่เข้าใจว่ามันทำงานอย่างไร เห็นได้ชัดว่า/etc/init.d/wdmสคริปต์ของฉันถูกเรียกเพราะเมื่อฉันใส่ไว้exitในนั้น wdm จะไม่เริ่ม แต่เมื่อฉันเปลี่ยนชื่อไดเรกทอรี /etc/rc3.d อีกทางหนึ่ง (runlevel เริ่มต้นของฉันเคยเป็น 3) แล้ว wdm ก็ยังคงเริ่มทำงาน ฉันไม่สามารถหาวิธีที่ systemd ค้นหาสคริปต์นี้และฉันไม่เข้าใจว่ามันทำอะไรกับสคริปต์ init.d อื่น ๆ ทั้งหมด systemd รัน init.d scrips เมื่อใดและอย่างไร ในระยะยาวฉันควรกำจัดสคริปต์ init.d ทั้งหมดหรือไม่

3
บริการใน Debian ทำงานอย่างไรและฉันจะจัดการได้อย่างไร
ใน Windows ฉันมีผู้จัดการบริการที่ฉันเห็นบริการของระบบทั้งหมดซึ่งสามารถเริ่มทำงานผ่าน Windows ได้ฉันตั้งค่าผู้ใช้ที่ใช้สิทธิในการจัดการนั้นอยู่และฉันสามารถส่งตัวแปรและข้อมูลอื่น ๆ ไปยังบริการได้ ฉันสามารถตั้งชื่อพวกเขาและฉันสามารถสร้างบริการที่ซ้ำกันของหนึ่งโปรแกรมและอื่น ๆ ดังนั้นฉันมีเครื่องมือการจัดการหลักใน Windows ฉันจะทำสิ่งเดียวกันใน Linux ได้อย่างไร ฉันจะทริกเกอร์ให้เรียกใช้ "svnserve" เมื่อเริ่มต้นได้อย่างไรหรือฉันจะกำหนดค่าบริการให้ทำงานในบริบทพิเศษได้อย่างไร ฉันจะดูบริการ "ที่ตั้งโปรแกรม" ทั้งหมดได้อย่างไร

3
การเรียกใช้สคริปต์ระหว่างการบูท / เริ่มต้น; init.d vs cron @reboot
ฉันกำลังพยายามที่จะเข้าใจความแตกต่างระหว่างinit.dและ cron @rebootสำหรับการเรียกใช้สคริปต์เมื่อเริ่มต้น / บูตระบบ การใช้@reboot(วิธีนี้ถูกกล่าวถึงในฟอรัมนี้โดยhs.chandra ) เป็นสิ่งที่ง่ายกว่าเพียงเข้าไปในcrontab -eการสร้าง@reboot /some_directory/to_your/script/your_script.txtและจากนั้นyour_script.txtจะถูกเรียกใช้งานทุกครั้งที่มีการรีบูตระบบ ในเชิงลึกของคำอธิบาย@rebootคือที่นี่ อีกทางเลือกหนึ่งโดยฝัง/etc/init.d/your_script.txtลงในบรรทัดที่สองของสคริปต์ของคุณเช่น: #!/bin/bash # /etc/init.d/your_script.txt คุณสามารถเรียกใช้chmod +x /etc/init.d/your_script.txtและควรส่งผลyour_script.txtให้รันทุกครั้งที่ระบบบูต Q1:ความแตกต่างที่สำคัญระหว่างสองคืออะไร Q2: ข้อไหนแข็งแกร่งกว่ากัน Q3:มีหนึ่งในสองที่ดีกว่านี้หรือไม่? Q4:นี่เป็นวิธีที่ถูกต้องในการฝังสคริปต์เพื่อให้ทำงานในระหว่างการบูทหรือไม่? ฉันจะรวมไฟล์ bash .sh ไว้เพื่อทำงานในระหว่างการเริ่มต้น

1
สถานะ“ แอ็คทีฟ (ออกแล้ว)” หมายถึงอะไรสำหรับบริการ SystemD
ฉันทำงานกับบริการที่กำหนดเองซึ่งใช้งานเว็บเซิร์ฟเวอร์เป็นหลักเรียกว่า thisismywebserver ขณะนี้ยังใช้งานไม่ได้ (เช่นฉันได้รับข้อผิดพลาด "ไม่สามารถเชื่อมต่อได้" พยายามเข้าถึงหน้าเว็บ) เมื่อฉันรันคำสั่งนี้service thisismywebserver statusเพื่อดูสถานะของบริการฉันเห็นว่าสถานะนั้นเป็น "active (exited)" นี่หมายความว่าบริการหยุดทำงานหรือไม่ ถ้าไม่เช่นนั้นหมายความว่าอย่างไร root@thisismywebserver-testing:~# service thisismywebserver status ● thisismywebserver.service - LSB: ThisIsMyWebServer server Loaded: loaded (/etc/init.d/thisismywebserver) Active: active (exited) since Sun 2015-11-08 23:01:33 EST; 18h ago Warning: Journal has been rotated since unit was started. Log output is incomplete or …

2
วิธีการเปลี่ยนค่าการหมดเวลาบริการ systemd?
ใน บริษัท ที่ฉันทำงานอยู่ตอนนี้มีบริการแบบดั้งเดิมและสคริปต์เริ่มต้นของมันกำลังใช้ SysvInit รุ่นเก่า แต่ทำงานผ่าน systemd (CentOS 7) เนื่องจากมีการคำนวณจำนวนมากบริการนี้ใช้เวลาประมาณ 70 วินาทีจึงจะเสร็จสิ้น ฉันไม่ได้กำหนดค่าการหมดเวลาสำหรับ systemd และไม่เปลี่ยนการกำหนดค่าเริ่มต้นที่/etc/systemd/system.confแต่เมื่อฉันเรียกใช้service SERVICE stopบริการของฉันหมดเวลาหลังจาก 60 วินาที ตรวจสอบกับjournalctl -b -u SERVICE.serviceฉันพบบันทึกนี้: Sep 02 11:27:46 service.hostname systemd[1]: Stopping LSB: Start/Stop Sep 02 11:28:46 service.hostname SERVICE[24151]: Stopping service: Error code: 255 Sep 02 11:28:46 service.hostname SERVICE[24151]: [FAILED] ฉันได้ลองเปลี่ยนDefaultTimeoutStopSecคุณสมบัติ/etc/systemd/system.confเป็น90sเป็น แต่การหมดเวลายังคงเกิดขึ้น ไม่มีใครมีความคิดใด …

4
การเชื่อมต่อระหว่างไดเร็กทอรี“ /etc/init.d” และ“ /etc/rcX.d” ใน Linux คืออะไร
ฉันกำลังเรียนรู้บรรทัดคำสั่งจากหนังสือที่ชื่อว่า " Linux Command Line และ Shell Scripting Bible, Second Edition " หนังสือเล่มนี้ระบุว่า: การใช้งานลินุกซ์บางตัวจะมีตารางของกระบวนการที่จะเริ่มต้นโดยอัตโนมัติเมื่อบูต บนระบบ Linux ตารางนี้มักจะอยู่ในไฟล์พิเศษ / etc / inittabs ระบบอื่น ๆ (เช่นการกระจาย Ubuntu Linux ยอดนิยม) ใช้โฟลเดอร์ /etc/init.d ซึ่งมีสคริปต์สำหรับการเริ่มต้นและหยุดแอปพลิเคชันแต่ละรายการในเวลาบูต สคริปต์เริ่มทำงานผ่านรายการภายใต้โฟลเดอร์ /etc/rcX.d โดยที่ X คือระดับการรัน อาจเป็นเพราะฉันใหม่สำหรับ linux ฉันไม่เข้าใจความหมายของย่อหน้าที่สองที่ยกมา บางคนสามารถอธิบายสิ่งเดียวกันด้วยภาษาที่ชัดเจนกว่าได้หรือไม่?

5
ฉันจะสร้างบริการสำหรับเชลล์สคริปต์ได้อย่างไรเพื่อให้ฉันสามารถเริ่มต้นและหยุดเหมือน daemon ได้?
ฉันใช้ CentOS 7 เป้าหมายของฉันคือการสร้าง cron ทุก ๆ ห้าวินาที แต่ในขณะที่ฉันวิจัยเราสามารถใช้ cron เพียงหนึ่งนาทีดังนั้นสิ่งที่ฉันทำตอนนี้คือฉันได้สร้างเชลล์ไฟล์ hit.sh while sleep 5; do curl http://localhost/test.php; done แต่ฉันกดมันเองด้วยการคลิกขวา สิ่งที่ฉันต้องการคือการสร้างบริการสำหรับไฟล์นั้นเพื่อให้ฉันสามารถเริ่มและหยุดโดยอัตโนมัติ ฉันพบสคริปต์เพื่อสร้างบริการ #!/bin/bash # chkconfig: 2345 20 80 # description: Description comes here.... # Source function library. . /etc/init.d/functions start() { # code to start app comes here # example: …

4
มีวิธีมาตรฐานในการเริ่มและหยุดบริการบน Linux หรือไม่?
จนกระทั่งเมื่อเร็ว ๆ นี้มีวิธีที่ง่ายและมีประสิทธิภาพในการเริ่ม / หยุด / เริ่มบริการใหม่: service nginx start|stop|restart นี้ทำงานที่ดีเลิศสำหรับหลายปีดังนั้น ... จนกระทั่งบางกางเกงสมาร์ทตัดสินใจที่จะปรับปรุงพวกเขาและตอนนี้ฉันกำลังหันหน้าไปกับระบบ Debian / Ubuntu ที่serviceสคริปต์ไม่ทำอะไรเลย (ตามที่ฉันควรจะใช้สิ่งที่ชอบsystemctl start nginx.service(มากอีกต่อไป ไม่ทำงานอัตโนมัติให้เสร็จสมบูรณ์ ... ) คำถามของฉันอ้างถึง Debian และ Ubuntu เป็นพิเศษ แต่มันจะมีประโยชน์ในการครอบคลุม CentOS / RedHat distros ด้วย ดังนั้นมีบางสิ่งที่สามารถช่วยฉันจากการเปลี่ยนแปลงในวาระนี้ได้หรือไม่? ในกรณีที่มันไม่ชัดเจนฉันกำลังมองหาวิธีที่สอดคล้องกันในการจัดการกับสิ่งเหล่านั้นซึ่งจะทำงานบน Debian 7.x, 8.x, Ubuntu LTS ล่าสุดและ non-LTS PS อยู่นอกขอบเขตของคำถามที่เฉพาะเจาะจงนี้ แต่ความรุ่งโรจน์พิเศษที่ได้รับหากการแก้ปัญหาจะครอบคลุมส่วนที่เปิดใช้งานและปิดการใช้งานสำหรับบริการ

3
Systemd และกระบวนการวางไข่
ปกติจะไม่โพสต์ที่นี่ แต่ฉันกำลังฉีกผมออกไปมากกว่านี้ ฉันมีสคริปต์ Python ที่เรียกใช้เมื่อมันเปิดตัวและมีหน้าที่รับผิดชอบในการเริ่มต้นกระบวนการอื่น ๆ สคริปต์นี้เคยเปิดตัวเมื่อเริ่มต้นผ่าน sysvinit แต่เมื่อเร็ว ๆ นี้ฉันอัพเกรดเป็น Debian Jessie ดังนั้นจึงได้ปรับให้เปิดใช้งานผ่าน systemd น่าเสียดายที่ฉันพบปัญหาฉันไม่สามารถทำงานได้ เมื่อคุณเรียกใช้สคริปต์โดยตรงในเชลล์ผู้ใช้มันจะเปิดใช้งานกระบวนการลูกอย่างถูกต้องและเมื่อสคริปต์ออกจากกระบวนการลูกจะถูกกำพร้าและทำงานต่อไป เมื่อเปิดตัว Via systemd หากกระบวนการหลักออกไปเด็ก ๆ ก็ออกจากกันด้วย (หน้าจอก็จะเริ่มตายและปรากฏเป็น Dead ???) เป็นการดีที่ฉันจะต้องสามารถเริ่มต้นสคริปต์แม่โดยไม่ต้องฆ่ากระบวนการลูกทั้งหมดมีบางสิ่งที่ฉันหายไป? ขอบคุณ! [Unit] Description=Server commander After=network.target [Service] User=serveruser Type=forking PIDFile=/var/Server/Server.pid ExecStart=/var/Server/Server.py ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target แก้ไข: มันอาจเกี่ยวข้องกับฉันที่จะชี้ให้เห็นว่าสคริปต์ Python นั้นเป็น 'ตัวควบคุม' สำหรับกระบวนการลูก มันเริ่มและหยุดเซิร์ฟเวอร์ในหน้าจอ …

2
จะทราบได้อย่างไรว่าสคริปต์โหลด /etc/init.d คำสั่งใดที่โหลดไว้ใน Debian
ฉันต้องการเรียกใช้สคริปต์ sysvinit หนึ่งบทต่อหน้าและคิดวิธีการทำเช่นนั้น เพื่อให้แน่ใจว่าสิ่งนี้เกิดขึ้นจริงตามลำดับที่ฉันชอบฉันต้องการดูรายการในลำดับที่เกิดขึ้น ฉันพบsudo insserv --showallแล้ว แต่ไม่สามารถทำให้หัวหรือส่วนท้ายของมันเพราะมันแสดงรายการสคริปต์เริ่มต้นหลายครั้ง จะทราบได้อย่างไรว่าสคริปต์โหลด /etc/init.d คำสั่งใดที่โหลดไว้ใน Debian

1
Linux น้อยที่สุดที่มีเคอร์เนลและ BusyBox: / etc / inittab จะถูกละเว้นจะดำเนินการ / init เท่านั้น
ฉันจัดการเพื่อสร้างซีดีลินุกซ์สดขนาดเล็กและใช้งานได้เต็มรูปแบบซึ่งมีเคอร์เนลเท่านั้น (คอมไพล์ด้วยตัวเลือกเริ่มต้น) และ BusyBox (คอมไพล์ด้วยตัวเลือกเริ่มต้น + สแตติกแอปเพล็ตทั้งหมดที่มีอยู่/sbin/init) ผมมีปัญหาใด ๆ ในการสร้างinitrdและเติม/dev, /procและ/sysและข้าพเจ้ายังมีปัญหาที่ไม่ทั้งหมดของฉันกับ/initเชลล์สคริปต์ เมื่อเร็ว ๆ นี้ฉันอ่านว่า BusyBox รองรับ/etc/inittabการกำหนดค่า (อย่างน้อยถึงระดับหนึ่ง) และฉันต้องการทำอย่างใดอย่างหนึ่งต่อไปนี้: ลืม/initเชลล์สคริปต์ของฉันและพึ่งพา/etc/inittabการกำหนดค่าทั้งหมด ใช้ทั้ง/initเชลล์สคริปต์และ/etc/inittabการกำหนดค่า ตอนนี้ปัญหาที่เกิดขึ้นจริง - ดูเหมือนว่า/etc/inittabจะถูกละเว้นอย่างสมบูรณ์เมื่อ distro บูตของฉัน อาการคือ: เมื่อฉันลบ/initและปล่อยให้/etc/inittabฉันจบลงด้วยความตื่นตระหนกเคอร์เนล สมมติฐานของฉันคือว่าเมล็ดไม่ได้ดำเนินการ/sbin/initเลยหรือว่า/sbin/initไม่พบ /etc/inittab(หรืออ่าน) ผมอ่านที่ BusyBox /etc/inittabควรปรับการทำงานได้โดยไม่ต้อง ดังนั้นฉันออกทั้งสอง/initและ/etc/inittabและคาดเดาสิ่งที่ - ตื่น kernel อีกครั้ง ผมพยายามที่จะดำเนินการ/sbin/initจากเปลือกของฉันและหลังจากที่หลายคาดเดาซึ่งรวมถึงexec /sbin/init, setsid /sbin/initและexec setsid /sbin/initฉันจบลงด้วยความตื่นตระหนกเคอร์เนล ทั้งที่มีและไม่มี / etc / inittab อยู่ในระบบไฟล์ นี่คือเนื้อหาของ/initสคริปต์เชลล์ของฉัน: …

1
ความหมาย / วัตถุประสงค์ของไฟล์ * .pid คืออะไรใน / var / run
ฉันค่อนข้างใหม่ในโลก Linux และตอนนี้ฉันกำลังพยายามเข้าใจหลักการFHS ใน/var/runฉันพบประมาณสิบ*.pidไฟล์crond.pidที่มีเพียง PID มีกระบวนการมากกว่าสิบกระบวนการในระบบและมีเพียงสิบไฟล์ ดังนั้นวัตถุประสงค์ของพวกเขาคืออะไรและสร้างอะไรขึ้นมา?

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