小编rub*_*cks的帖子

如何显示 systemd 单元的环境变量?

我正在尝试env从 systemd 服务单元转储,systemctl show-environment但没有做我想要的。有什么方法可以systemctl向我展示我的服务内部的环境是什么样的?

systemd

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

我可以让 Qemu 在内核恐慌失败时退出吗?

我正在尝试将 Qemu 添加到我的持续集成管道中以测试各种initrd工件。我已经发现我可以像这样运行 Qemu:

qemu-system-x86_64 \
    -machine q35 \
    -drive if=pflash,format=raw,file=OVMF_CODE.fd,readonly \
    -drive if=pflash,format=raw,file=OVMF_VARS.fd \
    -kernel vmlinuz-4.4.0-121-generic \
    -initrd my-initramfs.cpio.xz \
    -nographic
Run Code Online (Sandbox Code Playgroud)

...如果我在脚本中执行此操作,则会导致qemu-system-x86_64退出状态:0init

# poweroff -f
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为 init 脚本不会退出——它会poweroff -f“永远”调用和休眠,或者直到 Qemu 执行“断电”:

ACPI: Preparing to enter system sleep state S5
reboot: Power down
Run Code Online (Sandbox Code Playgroud)

我希望能够init通过强制执行exit错误来检测脚本中的问题set -eu。退出init脚本(正确)会导致内核崩溃,但qemu-system-x86_64进程永远挂起。

我怎样才能让它永远挂起来?如何让 Qemu 主机检测 Qemu 来宾中的内核崩溃?

进一步澄清:

我的应用程序的性质是安全敏感的;即,“允许”配置/编译 linux 内核,但不允许传递内核参数。把它放在一个很好的点上,CMDLINE_OVERRIDE启用。

linux kernel-panic init-script qemu linux-kernel

7
推荐指数
2
解决办法
3516
查看次数

`patch` 可以是幂等的吗?

可以patch幂等地调用;即,是否存在某些选项组合会导致重复调用patch与单次调用patch(对于非空差异)具有相同的效果?

diff patch

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

如何在不编译的情况下结合linux内核和initrd?

我知道可以从 linux 内核中提取嵌入式 initramfs cpio。我想知道是否可以进行反向操作;即,给定已编译的内核和 initramfs 存档,如何将它们组合起来?

我正在尝试实现与此内核配置相同的效果...

CONFIG_EFI=y
CONFIG_EFI_STUB=y
...
CONFIG_FB_EFI=y
...
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="root=..."
...
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="my_initrd.cpio"
Run Code Online (Sandbox Code Playgroud)

...没有实际配置和/或编译内核。

参考:

linux kernel initrd initramfs linux-kernel

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

给定单元的 `*.journal` 文件在哪里?

我有一个用于 sshd 的 systemd 服务单元:

$ systemctl status sshd
* ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-09-30 18:54:10 UTC; 6s ago
  Process: 13923 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 13918 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
  Process: 6287 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 6296 (sshd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/ssh.service
           `-6296 /usr/sbin/sshd -D

Sep 30 18:54:10 machine systemd[1]: Starting OpenBSD Secure Shell server...
Sep 30 18:54:10 machine sshd[6296]: …
Run Code Online (Sandbox Code Playgroud)

linux systemd systemd-journald

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