如果我有以下 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
死?
有一台 Linux 机器,其中文件由名为“lab”的用户拥有,UID 为 1000(在系统上)。还有另一台 Linux 机器,其中文件由名为“user”且 UID 为 500(在系统上)的用户拥有。
如何进行 NFS 挂载,以便将服务器上“lab”/UID-1000 拥有的文件视为客户端上“user”/UID-500 拥有的文件?
我可以使用 SSHFS 挂载甚至 CIFS 挂载来完成此操作,但 SSHFS/CIFS 会以其他方式中断,而我不想处理这些问题。
NFS 根本不支持这个用例吗?
我在 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 后面创建一个新的 …
bash ×2
automounting ×1
mount ×1
nfs ×1
quoting ×1
shell ×1
sleep ×1
ssh ×1
ssh-config ×1
wait ×1