小编tts*_*ras的帖子

如何查看在某个 bash 实例中执行的确切命令行?

我有一个长时间运行的bash实例(在screen会话内),它在循环内执行一组复杂的命令(每个循环执行管道、重定向等)。

长命令行写在终端内 - 它不在任何脚本内。现在,我知道 bash 进程 ID,并且我有 root 访问权限 - 我怎样才能看到在其中执行的确切命令行bash

例子
bash$ echo $$
1234
bash$ while true ; do \
    someThing | somethingElse 2>/foo/bar | \
    yetAnother ; sleep 600 ; done
Run Code Online (Sandbox Code Playgroud)

在另一个 shell 实例中,我想查看在 PID 1234 中执行的命令行:

bash$ echo $$
5678
bash$ su -
sh# cd /proc/1234
sh# # Do something here that will display the string  \
   'while true ; do someThing | somethingElse 2>/foo/bar | \
    yetAnother ; sleep …
Run Code Online (Sandbox Code Playgroud)

bash process debugging

34
推荐指数
2
解决办法
7507
查看次数

SSH 会话中的 Ctrl-C 处理

当我启动一个执行长时间运行的命令的 SSH 会话时,Ctrl+ C(SIGINT) 处理会发生什么?

我可以看到 SSH 会话已关闭,但我不确定谁先获得 SIGINT:是...

  1. 远程长时间运行的命令?也就是说,(a) 远程命令中的信号处理程序被调用并停止远程命令,(b) 产生它的外壳检测到命令停止,并停止 (c) 远程 sshd 检测到外壳停止,所以它关闭了连接

    或者

  2. 本地 ssh 接收到信号,并关闭连接。

我认为 (1) 正在发生,但想确定一下。

我也不确定在这种情况下 shell 处理 SIGINT 会发生什么。例如,如果我...

ssh remote 'while true ; do sleep 1 ; date ; done'
Run Code Online (Sandbox Code Playgroud)

Ctrl+ C,然后远程连接被删除。有没有办法在Ctrl+后保持活动状态的外壳下运行远程命令C?也就是说,在这种情况下,停止循环并允许我继续在远程 shell 上工作?

ssh signals

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

通过 ProxyCommand 大大提高了 SSH 速度 - 但为什么呢?

TL;DR 版本

观看此 ASCII 演员表此视频- 然后找出发生这种情况的任何原因。下面的文字说明提供了更多的上下文。

设置细节

  • 机器 1 是一台 Arch Linux 笔记本电脑,在其ssh上生成,连接到运行 Armbian 的 SBC(橙色 PI 零)。
  • SBC 本身通过以太网连接到 DSL 路由器,IP 为 192.168.1.150
  • 笔记本电脑通过 WiFi 连接到路由器 - 使用官方 Raspberry PI WiFi 加密狗。
  • 还有另一台笔记本电脑(机器 2)通过以太网连接到 DSL 路由器。

拓扑

使用 iperf3 对链接进行基准测试

以 为基准时iperf3,笔记本电脑和 SBC 之间的链接低于理论 56 Mbits/sec - 正如预期的那样,因为这是一个非常“拥挤的 2.4GHz” (公寓楼)内的 WiFi 连接。

更具体地说:在iperf3 -sSBC 上运行后,在笔记本电脑上执行以下命令:

# iperf3 -c 192.168.1.150
Connecting to host 192.168.1.150, port 5201
[  5] local 192.168.1.89 port …
Run Code Online (Sandbox Code Playgroud)

networking ssh netcat

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

为我的 ARM SoC 交叉编译 GLIBC

我在 chroot-ed Debianarmel环境中看到了一些非常奇怪的东西。

但首先,有点背景故事......这很长,但问题很复杂,任何潜在的帮助都取决于了解完整的故事。

我有一个运行 Linux 的嵌入式 ARM SoC - 更具体地说,armel是 2.6.17 内核上的Debian Lenny。Debian的发行版本身易于升级到更高版本(sudo apt-get dist-upgrade),因此可以升至速度,到armel的版本 squeeze或甚wheezy

问题是内核是自定义的......有问题的 ARM SoC 不是主线内核的一部分,所以它在 2.6.17 几乎被放弃了。

如果您知道 Linux 和 GLIBC 是如何工作的,那么您已经可以看到问题了——GLIBC 版本是用最低支持的内核版本编译的……这已经超过了 2.6.17。因此,如果我们尝试将 chroot 转换为 Debian 压缩...

$ # From inside the little ARM machine running Debian Lenny
$ sudo debootstrap --arch armel squeeze /squeeze \
     http://ftp.whateverCountry.debian.org/debian
$ sudo -i
# mount -t proc none /squeeze/proc
# mount -t sysfs none /squeeze/sys …
Run Code Online (Sandbox Code Playgroud)

arm cross-compilation glibc

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

Memcache 'stats' 报告非零的 'curr_connections' - 但 lsof 显示没有套接字连接

我们的内存缓存守护进程报告非零的 'curr_connections'...

$ telnet memcache-server 11211
Escape character is '^]'.
stats
...
STAT curr_connections 12
...
Run Code Online (Sandbox Code Playgroud)

...然而,lsof显示没有套接字连接:

$ ssh memcache-server
# lsof -P -i -n | grep memcache
memcached 1759 memcached   26u  IPv4  11638      0t0  TCP *:11211 (LISTEN)
memcached 1759 memcached   27u  IPv6  11639      0t0  TCP *:11211 (LISTEN)
memcached 1759 memcached   28u  IPv4  11642      0t0  UDP *:11211 
memcached 1759 memcached   29u  IPv6  11643      0t0  UDP *:11211 
Run Code Online (Sandbox Code Playgroud)

我猜 'curr_connections' 并不意味着我认为它的作用......

lsof socket

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

apt 文件与 apt 缓存

我已经知道apt-cache了很长一段时间,但直到昨天才偶然发现apt-file

我的问题是,鉴于两者的这种输出......

ttsiod@avalon ~
$ apt-cache search setxkb
x11-xkb-utils - X11 XKB utilities
xfce4-xkb-plugin - xkb layout switch plugin for the Xfce4 panel

ttsiod@avalon ~
$ apt-file find setxkb
fish: /usr/share/fish/completions/setxkbmap.fish
fish: /usr/share/fish/functions/__fish_complete_setxkbmap.fish
x11-xkb-utils: /usr/bin/setxkbmap
x11-xkb-utils: /usr/share/man/man1/setxkbmap.1.gz
xmanpages-ja: /usr/share/man/ja/man1/setxkbmap.1.gz
zsh: /usr/share/zsh/functions/Completion/X/_setxkbmap
zsh-beta: /usr/share/zsh-beta/functions/Completion/X/_setxkbmap
zsh-common: /usr/share/zsh/functions/Completion/X/_setxkbmap
Run Code Online (Sandbox Code Playgroud)

...为什么要费心使用 apt-cache?apt-file 不是在各方面都优越吗?

我可能错过了一些东西。

编辑:我问的原因是因为 apt-file 报告的包比 apt-cache 多。我只将 apt-cache 用于用例“我需要工具/手册页/任何名为 foo 的东西 - 哪些包包含 foo?” 似乎 apt-file 似乎可以完成 apt-cache 所做的一切,但更好 - 它报告了更多的包(apt-cache MISSES some),并且它还显示了所涉及的文件名。

debian apt

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

列出和编辑 /sepolicy 的内容

我可以为我的 Android 平板电脑创建我自己的启动映像- 这意味着我理论上可以修改/sepolicy文件,例如,为会话shell使用的帐户提供adb shell完整的root权限。

我怎么做?例如,我如何列出该文件中已有的数据,然后修改它们?

selinux

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

标签 统计

ssh ×2

apt ×1

arm ×1

bash ×1

cross-compilation ×1

debian ×1

debugging ×1

glibc ×1

lsof ×1

netcat ×1

networking ×1

process ×1

selinux ×1

signals ×1

socket ×1