标签: init

为什么 /etc/rc.d/rc{0,6}.d 中存在以“S”开头的脚本?

为什么以“S”开头的脚本存在于/etc/rc.d/rc{0,6}.d? 把'S'改成'K'会不会有问题?

系统停止/重新启动时系统的行为是否发生了变化?

linux init

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

如果程序不在 init.d 中,它在 CentOS 中的哪个位置在启动时启动?

我在 CentOS 上安装了一个软件(GitLab)。它运行良好,但是这个 GitLab 在启动时启动,我不想要那样。所以我查看了一下/etc/init.d以禁用它chkconfig,但我的问题是其中没有gitlab脚本,所以我无法禁用它。

所以这是我的问题:在 CentOS 中还有其他地方可以找到在 CentOS 启动时执行的程序吗?或者更直接地说,如果有人知道如何在不使用的情况下从启动时禁用 GitLab init.d,我很感兴趣!

centos upstart init gitlab

7
推荐指数
1
解决办法
5500
查看次数

每个用户的初始化脚本

有一个脚本(更像是一个命令),我想在每个用户登录的基础上执行。我听说过init.d脚本,但那些需要 root 权限并且不是每个用户可定制的(AFAIK)。简而言之,我正在寻找类似于.bashrc每次用户登录仅执行一次的内容。

为了详细说明这个场景,我目前在 Windows 主机上使用 Ubuntu 来宾操作系统(仿真由 VirtualBox 提供)。每次登录来宾操作系统时,我都需要mount执行一个命令,该命令会将我的共享文件夹挂载到用户主目录中的公共目录中。

boot init ubuntu

6
推荐指数
2
解决办法
4484
查看次数

在什么时候为 systemd 初始化 cgroup?

因此,长话短说,我试图让 systemd 与 Arch 安装一起工作,但没有从 init 运行 systemd。这意味着我正在启动一个没有运行 systemd 的系统,然后尝试在其上启动 systemd。

我面临的问题与 cgroups 有关 - 在启动期间,systemd 抱怨缺少 /sys/fs/cgroup/systemd 作为 cgroup,因此运行时功能减少,因为它认为 cgroups 不可用。这会导致任何使用 D-Bus 与 systemd 通信的工具出现问题。

正常运行 systemd(作为 PID 1 运行)cgroups 被正确创建并且 systemd 可以完全工作。但是,当它在已经启动的系统上运行时,不会创建 cgroup。我想知道在 init 过程中的哪个点是 /sys/fs/cgroup/systemd 创建/挂载,以及如何在已经运行的系统上复制它?我可以确认不是 /sbin/init 创建了 cgroup,因为运行它会产生相同的结果。

否则,我应该从哪里开始查看 systemd 的源代码?或者也许有一个邮件列表,我可以直接从开发人员那里得到更好的答案?

linux init systemd

6
推荐指数
1
解决办法
5404
查看次数

以非特权用户身份控制 Upstart 作业

允许非特权用户控制新贵工作的最佳方法是什么?

通过控制一个新贵的工作,我的意思是启动/停止/重新加载/重新启动它:

start myservice 
Run Code Online (Sandbox Code Playgroud)

我可以想象一种方法是通过 sudo;需要做些什么才能使这成为可能?还有其他/更好的方法吗?

注意:这个问题虽然名称相似,但与作为非特权用户运行新贵工作有很大不同,因为它涉及实际服务的执行,而不是对工作的控制。

sudo services upstart init

5
推荐指数
2
解决办法
1570
查看次数

如何在systemd下调试旧的initd脚本?

我有一个较旧的 initd 脚本来启动我的应用程序。它在旧版本的 SuSE 下运行良好,但在 Open SuSE 12.3 上失败。

奇怪的是

cd /etc/init.d ; ./script start
Run Code Online (Sandbox Code Playgroud)

工作正常。

/etc/init.d/script start
Run Code Online (Sandbox Code Playgroud)

显示重定向到 systemctl,但不启动我的应用程序(也不显示 initd 脚本的任何输出)。

我没有看到任何日志条目显示出了什么问题。我看到的唯一条目是在 /var/log/messages 中,说明应用程序已启动。

我该如何调试?

linux opensuse init systemd systemctl

5
推荐指数
1
解决办法
5678
查看次数

/sbin/init 存在但无法执行

我正在从头开始构建 Linux。目前我有内核、glibc 和 sysvinit。我按照这些说明自己编译了所有内容。虽然我的glibc版本是2.19。另外,我使用 grub 而不是 lilo,但我认为这不会有任何效果。

不管怎样,当我启动时,我最后得到了这个:

Starting init: /sbin/init exists but couldn't execute it (error -8)
Kernel panic - not syncing: No working init found. (and so on)
Run Code Online (Sandbox Code Playgroud)

错误代码 8 表示可执行格式有问题。我还尝试制作另一个打印“asdf”的可执行文件,但这也不起作用(相同的错误)。

那么我应该使用旧版本的 glibc、另一个 c 库、另一个 init 程序(如 systemd)还是这些指令不好?

linux init linux-kernel

5
推荐指数
0
解决办法
4144
查看次数

如何在没有root身份验证的情况下在systemd下运行init.d服务(更新)

我的公司设置了一些它开发的软件,在旧版本的 SLES 上使用 init.d 作为服务运行。我们最近开始在 Amazon 的 EC2 中的 SLES 12 实例上设置新环境,并发现 SLES 12 现在使用 systemd 而不是 init.d。然而,init.d 脚本(即 /etc/init.d 中)中定义的服务似乎仍然可以正常启动,因为 systemd 在后台执行一些魔法来处理预先存在的 init.d 脚本,这很棒。

但是,我们不想以 root 用户身份运行我们的服务——而是创建一个新用户来运行我们的服务。问题是,当我们尝试以非 root 用户身份启动我们的服务时,无论 systemd 为运行旧的 init.d 服务做任何准备,都会请求 root 身份验证,我们认为这不是必要的。在较旧的 SLES 环境中(使用实际的 init.d),我们可以毫无问题地以非 root 用户身份启动服务。据我所知,我们的非 root 用户权限和文件所有权在两种环境中都是相同的。

我认为这是 systemd 对旧的 init.d 内容进行后台处理的原因是启动我们服务的脚本在启动/停止服务的实际命令之前立即回显一行文本,但该行不是't output 即我们被要求在 echo 语句之前进行 root 身份验证。隐藏在 systemd 中的某个包/模块需要身份验证,但我现在不记得它的名字了。

请注意,如果可能,我们希望避免为我们的服务创建特定于服务的 .service 文件 - 我们希望坚持使用我们拥有的 init.d 脚本,并以非 root 用户身份运行它。此外,我们希望在不使用 sudo 的情况下运行该服务(我们在旧环境中不需要 sudo)。

对于这个问题缺乏细节表示歉意 - 一旦我回到办公室并可以获取具体细节等,我会用更具体的细节更新它。但这似乎可能是一个常见问题,所以我希望有人可以对此有所了解。

具体来说:我们希望在 SLES 12 上使用 systemd 以非 root 用户身份运行使用旧 init.d …

suse services init systemd

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

/init 和 /sbin/init 之间的区别

在 Linux 启动顺序中,内核将执行/sbin/init,但是,我可以看到/init我的 Linux 上的文件系统中存在另一个文件(CentOS 8 WSL2、Ubuntu 20 WSL2)。

它们是不同的二进制文件:

$ diff /init /sbin/init
Binary files /init and /sbin/init differ
Run Code Online (Sandbox Code Playgroud)

/sbin/init和之间有什么区别/init

linux boot init windows-subsystem-for-linux wsl2

5
推荐指数
1
解决办法
7792
查看次数

Ubuntu,控制init启动

Ubuntu 使用 upstart 而不是 sysvinit。但是仍然有运行级别和其中的链接。

我已经安装了 tor 并且它已将自己添加到操作系统的启动中。现在我想删除它,流行的选项是从运行级别删除启动和停止服务的链接或使 /etc/init.d/ 脚本不可执行。这很好,但是如果我想再次将 tor 放在启动列表中,这将是有问题的。我怎么知道将正确的序列放在正确的运行级别目录中。

有没有完整的指南?这有什么规则?任何工具来管理初始化?

请告诉

upstart runlevel init ubuntu

3
推荐指数
1
解决办法
5160
查看次数

这些 exec su 参数有什么作用?

这个命令的开关和参数是什么意思?

exec su -s /bin/sh -c 'exec "$0" "$@"' root -- /opt/nsq/bin/nsqd
Run Code Online (Sandbox Code Playgroud)

具体的--部分和exec "$0" "$@"应该做什么。

我知道$0为脚本设置一个循环以保持运行。

您可以忽略该/opt/nsq/bin/nsqd部分。这是我正在运行的应用程序。

linux shell shell-script upstart init

3
推荐指数
1
解决办法
2813
查看次数

start-stop-daemon 在命令行中工作,但在 /etc/init.d 脚本中不起作用

我正在尝试获取在 /etc/init.d/ar_sendmail 中工作的启动脚本(用于名为 ar_sendmail 的 ruby​​ gem):

#! /bin/sh

echo "in /etc/init.d/ar_sendmail"
DIR=/home/max/work/e_learning_resource/trunk
PATH=/var/lib/gems/1.8/bin
DAEMON=/var/lib/gems/1.8/bin/ar_sendmail
DAEMON_OPTS="-e production -d --batch-size 100 --delay 150"
NAME=ar_sendmail
DESC=ar_sendmail
PID_FILE=/home/max/work/e_learning_resource/trunk/shared/log/ar_sendmail.pid


test -x $DAEMON || exit 0
set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon -d $DIR --start --quiet --pidfile $PID_FILE \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        kill -TERM `cat $PID_FILE`        
    rm $PID_FILE
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        kill -TERM …
Run Code Online (Sandbox Code Playgroud)

bash init bash-scripting

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