我遇到了一个奇怪的 apt 问题,因为它在apt update
. 我想启用详细输出以查看究竟是什么导致了这个问题,或者至少是在哪里发生。的联机帮助页apt-get
似乎不包含任何相关内容。
如何为 启用详细输出apt
?
我正在搞乱 TIOCSTI,它将数据推送到终端的输入缓冲区。我希望能够在这些数据到达 shell 或将其重定向到文件之前捕获它。
为了更好地说明我正在尝试做的事情:
gcc -x c -o pusher.bin - <<PUSHER
#include <unistd.h>
#include <sys/ioctl.h>
#include <termios.h>
int main() {
char *c = "echo 'Catch me if you can'\n";
while(*c) ioctl(0, TIOCSTI, c++);
}
PUSHER
./pusher.bin
Run Code Online (Sandbox Code Playgroud)
如果在我的终端中运行,./pusher.bin
将注入echo 'Catch me if you can'\n
我的 shell 将立即执行的 tty。如果我运行setsid ./pusher.bin
, echo 将不会注入我的终端,但我也无法捕获它。
我想./pusher.bin
用一些东西来包装,这样我就可以检查在我的 tty 的输入缓冲区中注入了什么推送器,如果它是裸运行的。
澄清:我知道注入的输入可以在到达我的 shell 的标准输入后被捕获。这种方法虽然在捕获注入的输入方面很有效,但也将捕获正常的用户输入。此外,如果 stdin 已关闭或进程未附加到 tty,则此方法将不起作用。仅这些缺点就使得捕获 stdin 作为通用解决方案不可行。
当我尝试使用 .qemu 添加超过 4 个磁盘映像时,Qemu 失败-drive file=...,index={0..3},media=disk,format=raw
。我为每个附加驱动器收到的错误类似于以下内容:
qemu-system: -drive ....: machine type does not support if=ide,bus=2,unit=X
Run Code Online (Sandbox Code Playgroud)
如何让 qemu 接受额外的驱动器?
我有一个作为 systemd 服务运行的 shell 脚本,我想将具有粒度优先级的消息记录到该服务的 systemd 日志中。
当我使用 时logger(1)
,journald 仅记录一些消息并丢弃其余消息。哪条消息最终被记录到服务日志中似乎是完全随机的;有时只记录一两条消息,有时根本不记录任何消息。
起初我以为这是启动顺序/依赖性问题,但情况似乎并非如此,因为所有消息确实出现在系统日志(即)中,journalctl --system
但不是服务日志(即journalctl -u SERVICE.service
)中。我也尝试过systemd-cat
,但不幸的是它的行为很相似。
基于脚本的服务将具有优先级的消息记录到其自己的 systemd 日志中的正确方法是什么?
我正在尝试自动替换 nftables 规则。Nftables 的官方 wiki指出-f 是实现此目的的推荐方法。然而,当我nft -f /path/to/new/rules
在 Debian Buster 上运行时,新规则会添加到当前规则中,而不是替换它们,最终我会得到一个同时执行两个规则集的系统。
当我尝试通过systemd
's重新加载配置时,也会发生同样的事情nftables.service
。
如何nft
在单个原子操作中丢弃当前规则集,同时添加新规则集?