小编Har*_*jan的帖子

睡眠、等待和 Ctrl+C 传播

如果我有以下 shell 脚本

sleep 30s
Run Code Online (Sandbox Code Playgroud)

Ctrl+C在 shell 脚本运行时命中sleep,它随之消失。

如果我有以下 shell 脚本

sleep 30s &
wait
Run Code Online (Sandbox Code Playgroud)

Ctrl+C在 shell 脚本运行时命中,sleep继续,现在父级为 1。

这是为什么?bash 不会传播Ctrl+C给所有孩子吗?

编辑:如果我有以下脚本

/usr/bin/Xvfb :18.0 -ac -screen 0 1180x980x24 &
wait
Run Code Online (Sandbox Code Playgroud)

我在那里生成一个程序,这次Ctrl+C在主Xvfb进程上也会杀死该进程。

那么如何/为什么Xvfb与睡眠不同?

在某些进程的情况下,我看到它们被 收割init,在某些情况下它们会死亡。为什么睡眠会被 init 收获?为什么会Xvfb死?

bash sleep wait

8
推荐指数
2
解决办法
4662
查看次数

NFS 使用不匹配的 UID/用户名挂载

有一台 Linux 机器,其中文件由名为“lab”的用户拥有,UID 为 1000(在系统上)。还有另一台 Linux 机器,其中文件由名为“user”且 UID 为 500(在系统上)的用户拥有。

如何进行 NFS 挂载,以便将服务器上“lab”/UID-1000 拥有的文件视为客户端上“user”/UID-500 拥有的文件?

我可以使用 SSHFS 挂载甚至 CIFS 挂载来完成此操作,但 SSHFS/CIFS 会以其他方式中断,而我不想处理这些问题。

NFS 根本不支持这个用例吗?

automounting nfs mount

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

包含引号的变量的语法错误

我在 2 个网关后面有一堆 Linux 机器。要连接到设置一个我做

ssh -o ProxyCommand="ssh gateway1 nc %h %p" machines_behind_1
ssh -o ProxyCommand="ssh gateway2 nc --proxy %h %p --proxy-type socks4" machines_behind_2
Run Code Online (Sandbox Code Playgroud)

为了简化这个过程,我想我会创建一个环境变量来保存 proxycommand 并简单地使用它。所以我做了

export PGWA='-o ProxyCommand="ssh gateway1 nc %h %p"'
export PGWB='-o ProxyCommand="ssh gateway2 nc --proxy %h %p --proxy-type socks4"'
Run Code Online (Sandbox Code Playgroud)

然后,根据我想连接的机器,我会做

ssh $PGWA machine_behind_1
ssh $PGWB machine_behind_2 
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误 -

/bin/bash: -c: line 0: unexpected EOF while looking for matching `"'
/bin/bash: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

我不能使用任何 ssh_config 技巧,因为我提前不知道主机名。我可能会在 gateway1 后面创建一个新的 …

shell bash ssh quoting ssh-config

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

标签 统计

bash ×2

automounting ×1

mount ×1

nfs ×1

quoting ×1

shell ×1

sleep ×1

ssh ×1

ssh-config ×1

wait ×1