Questions tagged «init»

init是在UNIX系统引导过程中产生的第一个实际进程(PID 1)。某些系统可能依赖于替代解决方案,例如systemd或Upstart(Ubuntu)。


1
您何时会在switch_root上使用ivot_root?
我想更好地了解Linux初始化过程,以便通过ceph而不是nfs网络引导系统。 在此过程中,我遇到了两种切换根的形式。一个称为switch_root,另一个称为pivot_root。这些脚本是通过使用pxe引导过程通过tftp获取的内存文件系统(initramfs)运行的。 您什么时候可以使用另一个?我已经看到两者都用在放置在根目录下的一些init脚本中。


2
以root以外的用户身份运行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" ;; esac cd "$CURDIR" 当我最初运行该服务而未对目录进行任何修改(即,属于root)和amos.service没有User not Group参数时,一切运行良好! …
18 systemd  services  init 

3
为什么内核不能运行init?
我已经在此页面上下载了Raspbian图像。我正在尝试编译可用于在qemu中引导映像的内核。 我从kernel.org下载了Linux内核源代码并运行: make versatile_defconfig make menuconfig 然后,我向内核添加了以下功能: PCI支持(CONFIG_PCI) SCSI设备支持(CONFIG_SCSI) SCSI磁盘支持(CONFIG_BLK_DEV_SD) SYM53C8XX版本2 SCSI支持(CONFIG_SCSI_SYM53C8XX_2) 扩展3(ext3)文件系统(CONFIG_EXT3_FS) 扩展4(ext4)文件系统(CONFIG_EXT4_FS) 我还循环挂载了磁盘映像,并: 注释掉 /etc/ld.so.preload 调整/etc/fstab使用/dev/sda1和/dev/sda2 然后,我卸载映像并尝试使用以下方法启动计算机: qemu-system-arm \ -M versatilepb \ -m 256 \ -kernel linux-4.3/arch/arm/boot/zImage \ -hda 2015-09-24-raspbian-jessie.img \ -serial stdio \ -append "root=/dev/sda2 rootfstype=ext4 rw console=ttyAMA0" 内核能够挂载文件系统,但立即遇到了一些麻烦: Kernel panic - not syncing: Attempted to kill …
14 linux-kernel  arm  qemu  init 

2
初始化过程可以是Linux中的Shell脚本吗?
我正在阅读有关设置自定义initramfs的教程,其中指出: 唯一缺少的是/ init,它是initramfs根目录中的可执行文件,一旦加载,内核便会执行该可执行文件。由于sys-apps / busybox包含功能齐全的外壳程序,因此这意味着您可以将/ init二进制文件编写为简单的外壳程序脚本(而不是使其成为必须用汇编程序或C语言编写的复杂应用程序)。 并给出了init作为以以下内容开头的shell脚本的示例 #!/bin/busybox sh 到目前为止,我的印象是init是启动的主要过程,而所有其他用户空间过程最终都是init的子级。但是,在给定的示例中,第一个过程实际上是bin/busybox/ sh从中产生后来的init的。 这是正确的做法吗?例如,如果当时我有可用的解释器,那么我可以将初始化编写为Python脚本等吗?

2
在不重新启动系统的情况下重新启动init
在这个问题上,被接受的答案指出: 例如,/ sbin / init使用glibc [易受攻击的库],而无需重新启动就重新启动它是很简单的。 现在,简单是不可能的,但是我仍然很好奇: 是否可以在不重新启动整个系统的情况下重新启动init?
13 init 

2
如何确定在Debian中以什么顺序加载/etc/init.d脚本?
我想先运行一个sysvinit脚本,然后弄清楚该怎么做。 为了确保,这实际上是按照我喜欢的顺序进行的,我想查看一个列表,按照这种顺序进行。 我sudo insserv --showall已经找到了,但是无法说明问题,因为它多次列出了初始化脚本。 如何确定在Debian中以什么顺序加载/etc/init.d脚本?

4
怎样使将init = / path / to / program传递给内核而不像init那样启动程序?
我正在尝试在Linux系统上调试初始化脚本。我试图传递init=/bin/sh给内核以使其不启动sh就开始,init因此我可以手动运行init序列。 我发现内核仍然在启动init。在启动过程中,printk消息之一是命令行,这表明该行设置正确。另外,我可以使用内核命令行来影响其他事情。我已经检查确定路径存在;是的。 这是一个busybox系统,init是到busybox的符号链接。因此,为了确保busybox在PID为1时不会产生奇怪的魔术效果,我还尝试了将一个非busybox程序作为init运行;那也不起作用。看来,无论我做什么,init都会运行。 是什么导致这种现象?
13 linux  init 


1
带有内核和BusyBox的最小Linux:/ etc / inittab被忽略,仅执行/ init
我设法创建了一个小型且功能齐全的实时Linux CD,其中仅包含内核(使用默认选项编译)和BusyBox(使用默认选项+静态编译,所有小程序都包括在内/sbin/init)。我没有问题,建立initrd和填充/dev,/proc并且/sys也是我在所有与我没有任何问题/initshell脚本。 最近,我读到BusyBox支持/etc/inittab配置(至少在某种程度上),我非常想执行以下任一操作: 忘记我的/initshell脚本,完全依靠/etc/inittab配置。 同时使用/initShell脚本和/etc/inittab配置。 现在是实际问题- /etc/inittab当我的发行版启动时,似乎完全被忽略了。症状是: 当我删除/init并离开时,/etc/inittab我最终会陷入内核崩溃。我的假设是内核根本不执行/sbin/init,或者/sbin/init根本找不到(或读取)/etc/inittab。 我读到即使没有,BusyBox也应该可以正常工作/etc/inittab。因此,我同时删除了两者/init,/etc/inittab然后猜测是什么-再次出现内核恐慌。 我试图执行/sbin/init从我的外壳经过几次猜测,其中包括exec /sbin/init,setsid /sbin/init和exec setsid /sbin/init我结束了内核崩溃。文件系统上同时存在和不存在/ etc / inittab。 这是我的/initshell脚本的内容: #!/bin/sh dmesg -n 1 mount -t devtmpfs none /dev mount -t proc none /proc mount -t sysfs none /sys setsid cttyhack /bin/sh 在这一点上,我不在乎它的内容/etc/inittab,只要我有办法知道那里的配置确实有效。我尝试了几种/etc/inittab配置,所有这些配置都是基于在这里找到的信息。 作为最低要求,我的/ etc / inittab仅包含以下这一行: ::sysinit:/bin/sh 再次-我最终陷入内核恐慌,似乎/etc/inittab被忽略了。 /etc/inittab非常感谢任何有关如何强制我的小型现场发行版与BusyBox配合使用的建议! 更新: 为了清楚起见,使用和不使用当前的shell脚本,我都不会遇到内核崩溃的麻烦。一切正常,我的控制台运行良好,没有任何意外的麻烦。唯一的问题是,正如我上面所述,它被完全忽略了。/init/etc/inittab/bin/ash/etc/inittab …

4
系统是“恶意的”吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 访问一些讨论Debian和Xubuntu的在线论坛,我看到一些用户在签名字段中添加了以下行: ...没有系统... 这行显示得很自豪(在我看来)。 从维基百科: systemd是一套系统管理守护程序,库和实用程序,被设计为Linux计算机操作系统的中央管理和配置平台。 因此systemd,这似乎不是一件坏事,所以为什么人们自豪地写自己不使用它呢? 可以systemd是危险的,或者你只是坏?
11 systemd  init 

1
在rhel / centos-6初始化脚本中启动守护程序的规范方法是什么?
我为ubuntu的start-stop-daemon找到了很多很好的文档,并且有一个二进制文件的手册页daemon。 但是,从我可以说出的在rhel / centos脚本中启动守护程序的规范方法来看,就是先获取源代码,/etc/init.d/functions然后使用该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 &



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.