经常要ssh到服务器上跑进程,一跑时间就很长。
知道了emacs --daemon
可以跨ssh会话,就想着怎么启动了emacs --daemon
后,开一个server buffer,然后attach一个进程(这可能可以通过M-x ansi-term
然后执行gdb实现,这种是不是只要attach父进程就行了?),之后我退出ssh,它继续跑,之后某个时间再打开这个server buffer。
这怎么玩?
大概知道了先emacsclient -e "(ansi-term \"/bin/bash\")"
再emacsclient -c
然后切换过去,不过切换过去后的窗口很鬼畜啊。。。eshell
没问题,等我研究一下怎么把父进程的子进程全暂停然后附加过来。。。
tumx, screen,都可以用,为什麼一定要用功能不全的 ansi-term
这个主要是之前运行了进程,之后想detach。不过我一不小心断网了,所以。。。
eshell显示正常的,还支持多个重定向,现在在eshell里跑。
至于其它工具的话,我不是管理员啊,没权限安软件。虽然有screen,但是那得是一开始就在screen里面跑,而且之前我没用过。
不过最后我还是没有实现detach然后再attach,因为不是同一会话的进程没权限,而且之前那个会话因为断网挂了。。。我重新跑的。
以后还是在eshell里面跑,习惯点。
1 个赞
只有 ptrace()
system call 才能做到这个,但首先得有装对应的软件 reptyr,其次这个 system call 出于安全通常是禁用的,还是得有管理權限才行。
1 个赞