是否有可用 D-Bus 服务列表之类的东西?我偶然发现了一些,比如 NetworkManager、Rhythmbox、Skype、HAL 提供的那些。
我想知道是否可以找到一个相当完整的提供服务/接口的列表。
我听说 FIFO 是命名管道。它们具有完全相同的语义。另一方面,我认为 Unix 域套接字与管道非常相似(尽管我从未使用过它)。所以我想知道它们是否都指的是 Linux 内核中的相同实现。任何的想法?
这是A list of available DBus services的后续问题。
以下 python 代码将列出所有可用的 DBus 服务。
import dbus
for service in dbus.SystemBus().list_names():
print(service)
Run Code Online (Sandbox Code Playgroud)
我们如何在python中列出服务下的对象路径?如果答案不涉及 python 也没关系,尽管它是首选。
我正在使用 Ubuntu 14.04
在命令行上传递密码(到从我的程序启动的子进程)被认为是不安全的(因为它甚至可以被使用 ps 命令的其他用户看到)。可以将其作为环境变量传递吗?
我还能用什么来通过它?(环境变量除外)最简单的解决方案似乎是使用管道,但这个最简单的解决方案并不容易。
我用 Perl 编程。
为了拦截/分析网络流量,我们有一个名为Wireshark的实用程序。
我们是否有类似的实用程序来拦截 Unix/Linux 中任意两个进程之间的所有进程间通信?
我在内存中创建了一些进程,我需要分析它们如何相互通信。
我们可以在ipcs命令的帮助下查看system V消息队列的详细信息。是否有任何命令可以在 Linux 中检查 POSIX 消息队列?
当使用 MySQL 客户端(例如mysql)时,我如何确定它是使用 Unix 套接字文件还是使用 TCP/IP 连接到服务器?
在 linux 系统中定义的信号列表中,有两个信号表示为用户定义的信号(SIGUSR1和SIGUSR2)。在特定情况下将引发或捕获其他信号,但 SIGUSR 留给用户应用程序使用。
那么为什么只有两个信号呢?
$RANDOM每次访问特殊变量时都会有一个新值。在这方面,它让人想起某些语言中的“生成器”对象。
有没有办法在中实现这样的东西zsh?
我试图用命名管道来做到这一点,但我没有找到一种以受控方式从 fifo 中提取项目而不终止“生成器”进程的方法。例如:
% mkfifo /tmp/ints
% (index=0
while ( true )
do
echo $index
index=$(( index + 1 ))
done) > /tmp/ints &
[1] 16309
% head -1 /tmp/ints
0
[1] + broken pipe ( index=0 ; while ( true; ); do; echo $index; index=$(( ...
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以在 zsh 中实现这种生成器类型的对象?
编辑:这不起作用:
#!/usr/bin/env zsh
FIFO=/tmp/fifo-$$
mkfifo $FIFO
INDEX=0
while true; do echo $(( ++INDEX )) > $FIFO; done &
cat $FIFO
Run Code Online (Sandbox Code Playgroud)
如果我将上述内容放在脚本中并运行它,则输出很少是预期的单行
1
Run Code Online (Sandbox Code Playgroud)
相反,它通常由几个整数组成;例如
1
2 …Run Code Online (Sandbox Code Playgroud) Linux 有一个/proc目录和文件系统,据我所知,它不是 POSIX 的一部分。在每个/proc/$PID子目录中,是一个符号链接,cwd指向该PID进程的实际工作目录(该cwd链接始终是最新的)。
这个符号链接对于某些用例很方便,比如使用不同的 shell 和在两个 shell 之间交换文件(正式地,它们的工作目录)。
有没有一种简单的方法来获得类似的东西,只使用 POSIX 功能?
发表评论后,更精确:它不一定是链接和环境变量 lile $<PID>_CWD,也一样好,虽然乍一看,我不相信这样的解决方案存在。它必须易于引用(例如符号链接或环境变量),并且每次其他进程切换其工作目录时始终保持最新。
解决方案不一定是POSIX,最重要的是可移植性,但POSIX肯定是一种保证。