Questions tagged «init»

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


2
systemd如何使用/etc/init.d脚本?
我只是改用了debian jessie,大多数情况都可以正常运行,包括我的图形显示管理器wdm。 问题是,我只是不了解它是如何工作的。显然,我的/etc/init.d/wdm脚本被调用了,因为当我exit在其中放早时,wdm没有启动。但是,当我选择重命名/etc/rc3.d目录(我的默认运行级别以前是3)时,wdm仍然会启动。 我无法找到systemd如何找到该脚本,也无法理解它对所有其他init.d脚本的作用。 systemd何时以及如何运行init.d脚本? 从长远来看,我应该摆脱所有init.d脚本吗?


18
使用shell检测init系统
这可能与检测操作系统有关,但是我特别需要系统上当前使用的初始化系统。 Fedora 15和Ubuntu现在使用systemd,Ubuntu曾经使用Upstart(长期使用默认时间是15.04),而其他人则使用System V的变体。 我有一个要编写为跨平台守护程序的应用程序。初始化脚本是基于可以在configure上传递的参数动态生成的。 我只想为他们正在使用的特定初始化系统生成脚本。这样,安装脚本可以在没有参数的情况下作为root合理运行,并且可以自动“安装”守护程序。 这是我想出的: 在/ bin中搜索systemd,upstart等 将/ proc / 1 / comm与systemd,upstart等进行比较 询问用户 最好的跨平台跨平台方法是什么? 相关的一种,我可以依赖bash来依赖大多数* nix还是依赖于发行版/ OS? 目标平台: 苹果系统 Linux(所有发行版) BSD(所有版本) Solaris,Minix和其他* nix

5
初始化到底是做什么的?
我正在创建一个Linux发行版,现在我需要一个初始化程序。我可以很好地用c编写代码,并且我对linux相当了解(虽然不多,但是我使用arch linux进行开发已有4年了),所以我认为我应该尝试用C编写自己的基本初始化脚本。只是想知道,init会执行哪些任务来为简单的shell设置系统?(当我问“ init有什么作用?”时,我确实知道init是什么,它有什么用。我只是不知道它有什么任务。) 我不需要代码,甚至可能不需要基本命令,但是我确实需要它们的运行顺序。
43 linux  startup  init 

4
子进程是否与其父进程一起死亡,是否有任何UNIX变体?
我已经研究Linux内核行为已经有一段时间了,对我来说很清楚: 当一个进程死亡时,所有的子进程都将返回该init进程(PID 1),直到最终死亡。 但是,最近,一个比我更了解内核的人告诉我: 当进程退出时,它的所有子进程也会死亡(除非您使用NOHUP这种情况,否则它们会返回init)。 现在,即使我不相信这一点,我仍然编写了一个简单的程序来确保这一点。我知道我不应该依赖时间(sleep)进行测试,因为这完全取决于流程调度,但是对于这种简单情况,我认为这已经足够了。 int main(void){ printf("Father process spawned (%d).\n", getpid()); sleep(5); if(fork() == 0){ printf("Child process spawned (%d => %d).\n", getppid(), getpid()); sleep(15); printf("Child process exiting (%d => %d).\n", getppid(), getpid()); exit(0); } sleep(5); printf(stdout, "Father process exiting (%d).\n", getpid()); return EXIT_SUCCESS; } 这是程序的输出,ps每次printf通话时都有相关的结果: $ ./test & …
41 process  init  exit  fork 

5
如何在Debian Jessie中禁用X服务器自动启动?
我有一台安装了lightdm的运行Debian 8(Jessie)的远程计算机。我希望它以无GUI模式启动,但是我不想删除所有与X相关的东西,以便仍然可以通过带-X参数的SSH运行它。那么如何禁用X服务器自动启动而不删除它呢? 我试过了systemctl stop lightdm,它会停止lightdm,但是重新启动后它会再次运行。我也尝试过systemctl disable lightdm,但是基本上什么也没做。它在/etc/rc*.d目录中重命名了lightdm的脚本,但是在重新启动后它仍然会启动,那么我在做什么错呢?而且我不能只是update-rc.d lightdm stop因为它已被弃用且无法正常工作。


1
systemd如何在杀死-9时幸存?
在最近的“为什么'kill -9 0'为什么终止我的控制台会话”和“如何使内核崩溃”这两个问题之间,我陷入了困境,并尝试kill -9 1使用一台最新的Arch Linux笔记本电脑。我以用户ID“ root”的身份进行了操作。 我完全预期会发生某种崩溃,恐慌或关机,但没有任何反应。我又做了kill -9 1一次,没有任何效果。 如今,Arch linux机器正在运行systemd,因此:systemdkill -9 如何生存?我希望Linux 3.7内核中有特殊情况的代码,但是也许还有其他我没有想到的原因。 用PID 1运行的其他内容又如何呢?init我相信Slackware仍会使用,但是我不敢在我的生产Slackware服务器上尝试它。我的无线路由器上的DD-WRT运行/ sbin / init某种形式。

2
如何杀死其父级为init的<defunct>进程?
传输间歇性地挂在我的NAS上。如果我发送SIGTERM,它不会从进程列表中消失,并且&lt;defunct&gt;它旁边会出现一个标签。如果我发送SIGKILL,它仍然不会消失并且我不能终止父级,因为父级是init。我摆脱进程并重新启动传输的唯一方法是重新启动。 我意识到我能做的最好的事情就是尝试修复Transmission(而且我已经尝试过),但是我是编译的新手,我想确保自己的洪流在开始处理之前就完成了。

2
僵尸可以有孤儿吗?收割僵尸会不会打扰孤儿?
据我了解,僵尸进程已经死亡,但仍作为进程表中的占位符存在,直到其父级(或者init如果僵尸本身是孤儿)检查其退出状态。 我对孤立进程的理解是,它们仍然是活动的并且正在运行,但是其父进程已经死亡。 由于僵尸已经死了,所以它的孩子将被视为孤儿,不是吗?他们会因为收割僵尸而受到影响吗?具体来说,是init仅在收割僵尸后才将其收为孩子,还是在父母成为僵尸后立即收养?


1
初始化过程:所有过程的始祖?
我一直了解到,初始化过程是所有过程的始祖。为什么进程2的PPID为0? $ ps -ef | head -n 3 UID PID PPID C STIME TTY TIME CMD root 1 0 0 May14 ? 00:00:01 /sbin/init root 2 0 0 May14 ? 00:00:00 [kthreadd]
26 linux  process  init 

3
如何解决引导进入initramfs提示符和“装载:无法读取'/ etc / fstab':无此文件或目录”和“找不到init”的问题?
使用专用于单个分区的GPT分区磁盘安装新系统,该分区为ext4格式,extlinux(版本4.05)作为引导加载程序,Ubuntu Core版本13.10 amd64作为rootfs,而Ubuntu linux-image-3.11.0-18-generic作为内核,和extlinux-update生成引导加载程序配置。 重新引导后(仍在基于KVM的虚拟机中)的结果是(initramfs)提示和以下消息: mount: can't read '/etc/fstab': No such file or directory mount: mounting /dev on /root/dev failed: No such file or directory mount: mounting /sys on /root/sys failed: No such file or directory mount: mounting /proc on /root/proc failed: No such file or directory The filesystem doesn't …


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.