xrl*_*xrl 3 std command-line-arguments rust
我想为Rust程序中的线程提供单独的名称.这些名称应该出现在top/中htop我可以区分线程的工作.在Ruby中我会修改argv[0]条目,或者也许Process.setproctitle("foo").我的灵感来自Ruby的Unicorn网络服务器.
该env::args函数返回一个Args值.该Args值包装特定于平台的std::sys::args::args()函数,该函数不会重新导出以供一般使用.ArgsOs没有可用的mutator(所以是的,stdlib明确表示它是不可变的).
我如何以其他方式改变参数?我很满意只有Linux的解决方案,因为这是真正的工作将要发生的地方.stdlib外的解决方案也很好.
我应该采取什么样的路径来修改流程环境中的第一个参数?
She*_*ter 15
如何替换条目
std::env:args()
你不能.不可改变意味着不可改变.
我想改变我的Rust程序出现在
top/htop
标准库中没有这样的东西.据我所知,没有跨平台解决方案,所以放在那里将是一场艰苦的斗争.
似乎有一个足够简单的解决方案:在Linux中更改进程名称而不更改argv [0]
如果你只关心Linux,你可以使用prctl crate:
prctl::set_name("new_process")
Run Code Online (Sandbox Code Playgroud)
具有"进程名称"的各种概念和解决方案是复杂的并使用未记录/隐藏的API:在运行时在Mac OS X上设置进程名称
该答案中的所有内容都可以使用适当的macOS API绑定在Rust中编写.
似乎没有这样的概念:在运行时更改进程名称
有人可以写一个横跨这些不同机制的箱子,但我不知道一个.
所以我可以很容易地发现我所有的线程都在做什么
正如评论中所提到的,当您创建一个线程时,您可以为其命名.最近在运行时将一些工作重新命名为线程,但这项工作停滞不前.
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |