gpt4 book ai didi

Linux - 篡改现有进程

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:58 26 4
gpt4 key购买 nike

根据我对 Linux 进程系统的了解,你不能真正修改或篡改当前正在运行的进程(至少,据我所知没有内置函数能够完成这样的任务)。但有解决办法吗?是否可以说,暂停一个进程来定义/修改其中的变量,然后让它再次运行?举一个简单的例子,是否可以暂停终端窗口进程,并在让它再次运行之前更改其几何设置?

基本上,我正在寻找是否可能的见解,如果可能的话我应该尝试吗?

编辑 --- --- ---

好吧,我将尝试重新表述这个问题以获得更好的说明:假设我有一个正在运行的 gnome 终端窗口,其几何尺寸为 80x24。是否可以在不终止和/或替换进程的情况下将几何图形更改为 81x25?就像搁置它,应用新的更改,然后重新启动相同的过程?或者说这是绝对不可能的?

最佳答案

您有时可能会使用 ptrace(2) 系统调用(例如,gdb 调试器可以附加到进程并更改其数据中的某些内容)。

还有用于 pid 1234 的进程的 /proc/1234/。请参阅 proc(5),您可以大胆地写入 /proc/1234/mem - 使用适当的文件偏移量 - 小心(也许仅当进程 1234 停止时 - 请参阅 lseek(2)read(2) 、 {1045 67916}、write(2)mmap(2)pwrite(2)kill(2) 等...另请参阅 sigaction(2))。另请查看 /proc/1234/maps

此外,与更改终端大小有关:SIGWINCH(窗口更改信号)与此相关,请参阅 advanced linux programming。我猜友好的应用程序(例如 emacsvi)会处理它。 signal(7) 库可以处理它。

您可能对 ncursesapplication checkpointing 库感兴趣,或许还对 BLCR 实用程序感兴趣。

关于Linux - 篡改现有进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com