标签: init

Upstart 和 systemd 的优缺点是什么?

看起来systemd是该块上最热门的新init系统,就像几年前的Upstart一样。每个的优点/缺点是什么?另外,每个与其他初始化系统相比如何?

systemd init upstart

190
推荐指数
5
解决办法
10万
查看次数

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 脚本吗?

init-script systemd init sysvinit

153
推荐指数
2
解决办法
19万
查看次数

reboot 、 init 6 和 shutdown -r now 之间有什么区别?

我只想知道 in 之间的区别

  • reboot
  • init 6
  • shutdown -r now

哪个是最安全和最好的?

linux shutdown init reboot

121
推荐指数
4
解决办法
35万
查看次数

使用 shell 检测初始化系统

这可能与检测操作系统有关,但我特别需要系统上当前使用的 init 系统。

Fedora 15 和 Ubuntu 现在使用 systemd,Ubuntu 过去使用 Upstart(很长时间默认直到 15.04),而其他人使用 System V 的变体。

我有一个应用程序,我正在编写它作为跨平台守护程序。初始化脚本是根据可以在配置时传入的参数动态生成的。

我想做的只是为他们正在使用的特定初始化系统生成脚本。这样,安装脚本可以在没有参数的情况下以 root 身份合理运行,并且守护进程可以自动“安装”。

这是我想出的:

  • 在 /bin 中搜索 systemd、upstart 等
  • 将 /proc/1/comm 与 systemd、upstart 等进行比较
  • 询问用户

这样做的最佳跨/平台方式是什么?

有点相关,我可以依赖 bash 来支持大多数 *nix 还是依赖于发行版/操作系统?

目标平台:

  • 苹果系统
  • Linux(所有发行版)
  • BSD(所有版本)
  • Solaris、Minix 和其他 *nix

shell-script init portability

103
推荐指数
6
解决办法
5万
查看次数

如何确定系统是否使用 SysV、Upstart 或 Systemd initsystem

是否有一种简单的方法可以找出正在使用的 initsystem,例如最近的系统Debian wheezyFedora系统正在使用哪个 initsystem ?我知道Fedora 21使用systemdinitsystem 但那是因为我读过它并且因为所有相关的脚本/符号链接都存储在/etc/systemd/. 但是,我不确定例如Debian squeezeCentOS 6 or 7等等。

有哪些技术可以验证这种初始化系统?

linux systemd init upstart sysvinit

97
推荐指数
4
解决办法
11万
查看次数

如何在 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,因为它已被弃用并且不起作用。

debian systemd init x-server lightdm

51
推荐指数
2
解决办法
10万
查看次数

是否有任何 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;
}
Run Code Online (Sandbox Code Playgroud)

这是程序的输出,ps每次printf通话时都有相关的结果:

$ ./test &
Father process spawned (435).

$ ps -ef | grep test
myuser    435    392   tty1 …
Run Code Online (Sandbox Code Playgroud)

process fork exit init

49
推荐指数
2
解决办法
2万
查看次数

init 究竟做了什么?

我正在创建一个 linux 发行版,现在我需要一个 init 程序。我可以很好地用 c 编写代码,而且我对 linux 了解很多(虽然不多,但我已经使用 arch linux 进行了 4 年的开发),所以我想我应该尝试用 C 编写我自己的基本初始化脚本。我是只是想知道,init 做了什么任务来为一个简单的 shell 设置系统?(当我问“init 有什么作用?”时,我确实知道 init 是什么以及它的用途。我只是不知道它做了什么任务。)

我不需要代码,我什至可能不需要基本命令,但我确实需要它们运行的​​顺序。

linux startup init

45
推荐指数
1
解决办法
1万
查看次数

root 可以杀死 init 进程吗?

root 可以杀死 init 进程(pid 为 1 的进程)吗?它的后果是什么?

root init

44
推荐指数
5
解决办法
6万
查看次数

systemd 如何在 kill -9 中存活下来?

在最近的“为什么 'kill -9 0' 结束我的控制台会话”和“如何获得内核恐慌”问题之间,我在我的马鞍下有一个毛刺,并尝试kill -9 1了一个最新的 Arch linux 笔记本电脑。我是作为用户 ID“root”来做的。

我完全预料到会发生某种崩溃、恐慌或关机,但什么也没发生。我又做了kill -9 1一次,没有效果。

Arch linux 机器systemd这些天都systemd在运行,所以:如何在 kill -9中幸存下来?我希望在 Linux 3.7 内核中有特殊情况代码,但也许存在一些我没有想到的其他原因。

用 PID 1 运行的其他东西呢?init我相信Slackware 仍在使用,但我害怕在我的生产 Slackware 服务器上尝试它。我的无线路由器上的 DD-WRT 运行某种形式的 /sbin/init。

process kill signals systemd init

33
推荐指数
1
解决办法
9090
查看次数