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

init เป็นกระบวนการที่เกิดขึ้นจริงครั้งแรก (PID 1) เกิดขึ้นระหว่างลำดับการบูตของระบบ UNIX ระบบบางระบบอาจใช้โซลูชั่นทางเลือกเช่น systemd หรือ Upstart (Ubuntu)

4
กระบวนการหลักใหม่เมื่อกระบวนการหลักตาย
ใน UNIX เมื่อกระบวนการผู้ปกครองหายไปฉันคิดว่ากระบวนการลูกทั้งหมดรีเซ็ตการเริ่มต้นเป็นผู้ปกครอง สิ่งนี้ไม่ถูกต้องตลอดเวลาหรือไม่ มีข้อยกเว้นใด ๆ
22 process  init  exit 

1
เมื่อใดที่คุณจะใช้ pivot_root บน switch_root
ฉันต้องการที่จะเข้าใจกระบวนการเริ่มต้นของ Linux ที่ดีขึ้นเพื่อที่จะ netboot ระบบผ่าน ceph มากกว่า nfs ในกระบวนการฉันเจอรูทวิทช์สองรูปแบบ หนึ่งเรียกว่า switch_root และอีกหนึ่งเรียกว่า pivot_root สคริปต์เหล่านี้ถูกเรียกใช้จากระบบไฟล์ในหน่วยความจำ (initramfs) ที่ได้รับผ่าน tftp โดยใช้กระบวนการบูต pxe เมื่อไหร่ที่คุณจะใช้อันอื่น ฉันเคยเห็นทั้งสองใช้ในสคริปต์ init บางส่วนอยู่ในรูท

9
วิธีการอ่านข้อความปิดหลังจากนั้น?
ฉันใช้ Lubuntu 11.10 ทุกครั้งที่ฉันปิดตัวลงฉันสามารถอ่าน FAIL ด้วยตัวอักษรสีแดง แต่ฉันไม่สามารถอ่านเพิ่มเติมได้ ดังนั้นวิธีการอ่านข้อความบันทึกและพยายามที่จะแก้ปัญหาได้อย่างไร
18 logs  shutdown  init  openrc 

2
การรันเซอร์วิส systemd ในฐานะผู้ใช้อื่นที่ไม่ใช่รูท!
ฉันสร้างบริการต่อไปนี้ amos.service และจำเป็นต้องเรียกใช้เป็น amos (สมาชิกของกลุ่ม amos) [Unit] Description=AMOS Service After=network.target [Service] User=amos Group=amos Type=simple WorkingDirectory=/usr/share/amos ExecStart=/usr/share/amos/amos_service.sh start ExecStop=/usr/share/amos/amos_service.sh stop Restart=on-failure [Install] WantedBy=multi-user.target สิทธิ์ทั้งหมดได้รับการตั้งค่า/usr/share/amosเป็นamos:amos amos_service.sh มีดังนี้: #!/bin/bash CUDIR=$(dirname "$0") cd /usr/share/amos start() { exec /usr/share/amos/run_amos.sh >> /var/log/amos.log 2>&1 } stop() { exec pkill java } case $1 in start|stop) "$1" ;; …
18 systemd  services  init 

3
ทำไมเคอร์เนลที่รันไม่สามารถเริ่มต้นได้
ฉันดาวน์โหลดรูปภาพ Raspbian ในหน้านี้แล้ว ฉันพยายามรวบรวมเคอร์เนลที่สามารถใช้เพื่อบูตอิมเมจภายใน qemu ฉันดาวน์โหลด Linux kernel kernel จากkernel.orgและวิ่งไปที่: make versatile_defconfig make menuconfig ฉันเพิ่มคุณสมบัติต่อไปนี้ในเคอร์เนล: รองรับ PCI (CONFIG_PCI) การสนับสนุนอุปกรณ์ SCSI (CONFIG_SCSI) การสนับสนุนดิสก์ SCSI (CONFIG_BLK_DEV_SD) SYM53C8XX เวอร์ชัน 2 รองรับ SCSI (CONFIG_SCSI_SYM53C8XX_2) ระบบไฟล์ Extended 3 (ext3) (CONFIG_EXT3_FS) ระบบไฟล์ Extended 4 (ext4) (CONFIG_EXT4_FS) ฉันยังวนรอบเมานต์อิมเมจของดิสก์และ: แสดงความคิดเห็น /etc/ld.so.preload ปรับ/etc/fstabให้ใช้/dev/sda1และ/dev/sda2 จากนั้นฉันก็ถอนการติดตั้งภาพและพยายามเริ่มต้นเครื่องด้วย: qemu-system-arm \ -M versatilepb \ …
14 linux-kernel  arm  qemu  init 

2
กระบวนการ init สามารถเป็นเชลล์สคริปต์ใน Linux ได้หรือไม่
ฉันกำลังผ่านการสอนเกี่ยวกับการตั้งค่า initramfsที่กำหนดเองซึ่งระบุว่า: สิ่งเดียวที่ขาดหายไปคือ / init ไฟล์เรียกทำงานในรูทของ initramfs ที่ถูกเรียกใช้โดยเคอร์เนลเมื่อโหลดแล้ว เนื่องจาก sys-apps / busybox มีเชลล์ที่ใช้งานได้อย่างสมบูรณ์ซึ่งหมายความว่าคุณสามารถเขียนไบนารี / init ของคุณเป็นเชลล์สคริปต์แบบง่าย ๆ (แทนที่จะทำให้มันเป็นแอพพลิเคชั่นที่ซับซ้อนที่เขียนใน Assembler หรือ C ที่คุณต้องรวบรวม) และให้ตัวอย่างของ init เป็นเชลล์สคริปต์ที่ขึ้นต้นด้วย #!/bin/busybox sh จนถึงตอนนี้ฉันอยู่ภายใต้การแสดงผลที่ init เป็นกระบวนการหลักที่เปิดตัวและกระบวนการพื้นที่ผู้ใช้อื่น ๆ ทั้งหมดเป็นลูกของ init ในที่สุด อย่างไรก็ตามในตัวอย่างที่กำหนดกระบวนการแรกนั้นจริง ๆ แล้วbin/busybox/ shซึ่ง init นั้นจะเกิดขึ้นในภายหลัง นี่เป็นการรบกวนที่ถูกต้องหรือไม่? ตัวอย่างเช่นถ้าฉันมีล่ามที่มีอยู่ ณ ตอนนั้นฉันสามารถเขียน init เป็นสคริปต์ Python ได้หรือไม่?

2
การรีสตาร์ท init โดยไม่ต้องรีสตาร์ทระบบ
ในคำถามนี้คำตอบที่ได้รับการยอมรับระบุไว้ว่า ตัวอย่างเช่น / sbin / init ใช้ glibc [the lib ที่มีช่องโหว่] และการรีสตาร์ทโดยไม่มีการรีบูตไม่ใช่เรื่องเล็กน้อย ทีนี้ไม่ใช่เรื่องไร้สาระสำหรับวิศวกรที่เป็นไปไม่ได้แต่ฉันก็ยังสงสัยอยู่: เป็นไปได้ไหมที่จะรีสตาร์ท init โดยไม่ต้องรีสตาร์ททั้งระบบ?
13 init 

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

4
สิ่งที่ทำให้การส่ง init = / path / to / program ไปยังเคอร์เนลไม่ได้เริ่มโปรแกรมในฐานะ init?
ฉันพยายามดีบักสคริปต์ init บนระบบ Linux ฉันพยายามที่จะส่งผ่านinit=/bin/shไปยังเคอร์เนลเพื่อให้เริ่มต้นshโดยไม่ต้องเริ่มต้นinitเพื่อให้ฉันสามารถทำงานผ่านลำดับ init ด้วยตนเอง สิ่งที่ฉันได้พบคือเคอร์เนลเริ่มต้นinitแล้ว ระหว่างการบูทเครื่องข้อความหนึ่งใน printk คือบรรทัดคำสั่งและนั่นแสดงว่าบรรทัดนั้นถูกตั้งค่าอย่างเหมาะสม นอกจากนี้ฉันสามารถส่งผลกระทบต่อสิ่งอื่น ๆ โดยใช้บรรทัดคำสั่งเคอร์เนล ฉันได้ตรวจสอบเพื่อให้แน่ใจว่าเส้นทางนั้นมีอยู่; มันทำ นี่คือระบบ busybox และ init เป็น symlink ไปยัง busybox; ดังนั้นเพื่อให้แน่ใจว่า busybox ไม่ได้ใช้เวทมนตร์แปลก ๆ เมื่อ PID ของมันคือ 1 ฉันก็ลองใช้โปรแกรมที่ไม่ยุ่งในฐานะ init ที่ไม่ทำงานเช่นกัน ดูเหมือนว่าไม่ว่าฉันจะทำอะไร init ก็จะถูกเรียกใช้ สิ่งที่อาจทำให้เกิดพฤติกรรมนี้
13 linux  init 

1
ทำไมการเรียกใช้ `killall init` ในฐานะผู้ใช้ออกจากระบบฉัน?
ในคอมพิวเตอร์หลายเครื่องที่ใช้ Ubuntu 14.XX ฉันรันคำสั่ง "killall init" ในฐานะผู้ใช้และออกจากระบบทันที ฉันสามารถเข้าสู่ระบบอีกครั้งโดยไม่มีปัญหา ทำไมนี้ เบื้องหลังเกิดอะไรขึ้น
12 kill  init  logout 

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สคริปต์เชลล์ของฉัน: …

4
systemd“ เป็นอันตราย” หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เยี่ยมชมฟอรัมออนไลน์ที่พูดคุยเกี่ยวกับ Debian และ Xubuntu ฉันเห็นผู้ใช้บางคนที่เพิ่มบรรทัดนี้ในฟิลด์ลายเซ็น: ... ไม่มี systemd ... บรรทัดนี้แสดงให้เห็นถึงความภาคภูมิใจ (ดูเหมือนฉัน) จากวิกิพีเดีย : systemd เป็นชุดของ daemons การจัดการระบบ, ไลบรารีและยูทิลิตี้ที่ออกแบบมาเพื่อการจัดการกลางและแพลตฟอร์มการกำหนดค่าสำหรับระบบปฏิบัติการคอมพิวเตอร์ลีนุกซ์ ดังนั้นsystemdดูเหมือนจะไม่เลวร้ายดังนั้นทำไมผู้คนเขียนด้วยความภาคภูมิใจที่พวกเขาไม่ใช้มัน อาจsystemdเป็นอันตรายหรือไม่ดีสำหรับคุณ
11 systemd  init 

1
วิธีที่ยอมรับได้ของการเริ่ม daemon ในสคริปต์ rhel / centos-6 คืออะไร?
daemonผมพบว่าเอกสารจำนวนมากที่ดีสำหรับอูบุนตูของการเริ่มต้นหยุดภูตและมีหน้าคนสำหรับไบนารี แต่จากสิ่งที่ฉันสามารถบอกวิธีบัญญัติให้เริ่ม daemon ในสคริปต์ rhel / centos คือแหล่งที่มา/etc/init.d/functionsแล้วใช้daemon()ฟังก์ชัน แต่ฉันไม่พบตัวอย่างหรือเอกสารที่ดี วิธีที่ยอมรับได้ของการเริ่ม daemon ในสคริปต์ rhel / centos-6 คืออะไร? ความพยายามครั้งแรกของฉันคือ: #!/bin/bash source /etc/init.d/functions daemon --user USER nohup /path/to/your/binary arg1 arg2 >/dev/null 2>&1 &



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