2011-11-28 36 views
1

我需要与否的过程中我的emacs项仍在运行的检查;通过(term "/bin/bsh")开始,然后重新命名为,例如。 term-A是否有直接的elisp方法来检查进程是否在emacs术语缓冲区中运行?

我已经试过(term-check-proc "term-A"),但它并没有显示什么,我我需要什么,或者至少,我不知道怎样才能使用它。

如果有多个emacs term活动并运行相同的程序(在我的情况下,这是相当有可能的),试图通过shell调用ps afx(或类似的方法)追查它是有问题的。

我真的需要知道在特定的emacs术语缓冲区,term-A中的进程是否正在运行。

回答

4

你可以得到一个缓冲的过程与get-buffer-process

(get-buffer-process "*shell*") -> #<process shell> 
(get-buffer-process "*scratch*") -> nil 

后,我退出在*shell*壳,我得到nil该缓冲区太大。

+0

谢谢,但似乎我的问题是不明确的。我需要知道,如果我开始任期内运行的进程仍在运行..如。 '(得到缓冲处理“一词-A”)'似乎只告诉我关于终端实例本身。我想知道,如果我在命令行提示符下输入命令运行与否(即命令由'启动(设置缓冲区“一词-A”)(术语 - 送 - 原始字符串“CMD-A”)'..。而我也希望终端缓冲区的窗口保持打开状态。 –

+0

嗯,你可以使用'(与工艺ID(得到缓冲处理“一词-A”))'得到shell的进程ID,然后使用'PS alx',并期待在PPID列,看看外壳有任何孩子。 –

+0

这就是我一直在寻找因为,感谢..与PID它是简单的saiIng。(除非elisp可以做儿童查找,而不是使用'ps' .... –

相关问题