小编ose*_*000的帖子

tmux:为什么我的窗格名称强制带有“Z”字符后缀?

请参阅我的 tmux 屏幕截图,某些窗格的标题总是带有后缀“Z”或“-Z”,无论我是否已重命名它们。 在此输入图像描述

有没有人可以解决这个问题?

我的 tmux 版本是 3.2a。操作系统是 Ubuntu Jammy。

tmux

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

Linux内核参数:net.ifnames=0和biosdevname=0有什么区别

我发现centos7.8在其内核参数中使用“net.ifnames=0”而没有“biosdevname=0”,结果似乎是相同的:我得到了传统的网卡名称,例如eth0。

只是好奇,“net.ifnames=0”和“biosdevname=0”有什么区别?

linux kernel

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

惊喜:Interactive Bash 在单独的进程组中运行命令

让我惊讶的是,至少从 Bash 4.4.19 开始,Interactive Bash 在单独的会话中运行命令,运行后请参阅以下进程列表sleep 8888

PGID    PID       PPID
3150071 3150071  252603     -bash
3194323 3194323 3150071       sleep 8888
Run Code Online (Sandbox Code Playgroud)

您可以看到PGIDofsleep不等于 bash,而其 PPID 等于。

测试在 Ubuntu Bionic 上完成。

有关于这种行为改变的任何文档吗?或者从一开始就一直如此?

在单独的会话中运行命令意味着 bash 退出时根本不会发生 SIGHUP 效果,也许这就是为什么https://www.sobyte.net/post/2022-04/linux-nohup-setsid-disown/#about -

事实上,在较新版本的 bash 上,bash 不会向后台程序发送 SIGHUP 命令。这意味着任何在后台运行的以 & 结尾的进程都不会被终端退出的 SIGHUP 信号退出。

编辑:我应该使用术语“进程组”而不是“会话”。

bash session sighup

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

/proc/self/fd/2 无法在 `sudo -u other_user` 下访问

我经常用来tee /proc/self/fd/2向 stdout 和 stderr 显示一些内容,捕获 stdout,同时仍将所有输出保留到 stderr。

例如,我有一个do.sh

STD_OUT_STR=$(CMD ARGS ... 2>&1 | tee /proc/self/fd/2)
# handle STD_OUT_STR ...
...
Run Code Online (Sandbox Code Playgroud)

这效果非常好。

例如,

./do.sh
Run Code Online (Sandbox Code Playgroud)

基本上是这样运行的:

bash -c 'echo hi | tee /proc/self/fd/2'
Run Code Online (Sandbox Code Playgroud)

输出

hi
hi
Run Code Online (Sandbox Code Playgroud)

然而,有一天我在 下运行它sudo -u A_USER ./do.sh,它失败了。

sudo -u A_USER ./do.sh'
Run Code Online (Sandbox Code Playgroud)

其本质上是运行:

sudo -u A_USER bash -c 'echo hi | tee /proc/self/fd/2'
Run Code Online (Sandbox Code Playgroud)

输出

tee: /proc/self/fd/2: Permission denied
hi
Run Code Online (Sandbox Code Playgroud)

到目前为止,我必须遵循以下解决方法:

sudo -u A_USER bash -c 'echo hi | tee >(cat >&2)'
Run Code Online (Sandbox Code Playgroud)

我知道这是出于安全原因:不与其他用户共享当前用户的 …

sudo pty

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

标签 统计

bash ×1

kernel ×1

linux ×1

pty ×1

session ×1

sighup ×1

sudo ×1

tmux ×1