在Linux/NPTL上,线程被创建为某种进程.
我可以看到我的一些进程有一个奇怪的cmdline:
cat /proc/5590/cmdline hald-addon-storage: polling /dev/scd0 (every 2 sec)
你知道如何为我的进程的每个线程做到这一点吗?这对调试非常有帮助.
/我现在正在调查HAL来源
谢谢
如果你想以可移植的方式做到这一点,那么可以在多个Unix变体中使用的东西,可用的选项很少.
您需要做的是调用者进程必须使用argv [0]
指向您希望在进程输出中看到的名称的参数调用exec ,并指向指向实际可执行文件的文件名.
您可以使用以下命令从shell尝试此行为:
exec -a "This is my cute name" bash
这将用一个命名的替换当前的bash进程"This is my cute name"
.
要在C中执行此操作,您可以查看sendmail
已广泛移植的源代码或任何其他软件,并查找跨操作系统所需的所有变体以支持此功能.
某些操作系统具有setproctitle(3)
API,其他一些操作系统允许您覆盖内容argv [0]
并显示结果.