* Detecting a running process in Elisp @ 2013-07-26 15:26 gentsquash 2013-07-26 15:37 ` Eli Zaretskii ` (3 more replies) 0 siblings, 4 replies; 16+ messages in thread From: gentsquash @ 2013-07-26 15:26 UTC (permalink / raw) To: help-gnu-emacs I have a process "ScidvsMac" which I'd like to detect in Elisp. I'm currently using (search "ScidvsMac" (shell-command-to-string "ps -A")) but is there something cleaner? ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 15:26 Detecting a running process in Elisp gentsquash @ 2013-07-26 15:37 ` Eli Zaretskii 2013-07-26 15:50 ` Drew Adams ` (2 subsequent siblings) 3 siblings, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2013-07-26 15:37 UTC (permalink / raw) To: help-gnu-emacs > Date: Fri, 26 Jul 2013 08:26:25 -0700 (PDT) > From: gentsquash@gmail.com > > I have a process "ScidvsMac" which I'd like to detect in > Elisp. I'm currently using > > (search "ScidvsMac" (shell-command-to-string "ps -A")) > > but is there something cleaner? There's list-system-processes to list all of the processes, and process-attributes to examine their attributes, including name, command line, etc. ^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: Detecting a running process in Elisp 2013-07-26 15:26 Detecting a running process in Elisp gentsquash 2013-07-26 15:37 ` Eli Zaretskii @ 2013-07-26 15:50 ` Drew Adams 2013-07-26 15:54 ` Eli Zaretskii [not found] ` <<83siz1z58a.fsf@gnu.org> [not found] ` <mailman.1854.1374853118.12400.help-gnu-emacs@gnu.org> 2013-07-26 23:18 ` gentsquash 3 siblings, 2 replies; 16+ messages in thread From: Drew Adams @ 2013-07-26 15:50 UTC (permalink / raw) To: gentsquash, help-gnu-emacs > I have a process "ScidvsMac" which I'd like to detect in > Elisp. I'm currently using > (search "ScidvsMac" (shell-command-to-string "ps -A")) > but is there something cleaner? Without knowing anything about processes in Elisp, I tried using apropos "processes" (apropos "process" had too many hits). That led me to `list-processes', which led me to `list-processes--refresh'. That led me to `process-list', which I imagine you can use to get what you want. Each element of `process-list' is supposedly a process object (the doc is not terrific for `process-list'), which means you can use functions such as `process-buffer', `process-name', `process-type', `process-status', and `process-attributes' on it. HTH. Remember: `apropos' and its friends are your friends. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 15:50 ` Drew Adams @ 2013-07-26 15:54 ` Eli Zaretskii [not found] ` <<83siz1z58a.fsf@gnu.org> 1 sibling, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2013-07-26 15:54 UTC (permalink / raw) To: help-gnu-emacs > Date: Fri, 26 Jul 2013 08:50:35 -0700 (PDT) > From: Drew Adams <drew.adams@oracle.com> > > Without knowing anything about processes in Elisp, I tried > using apropos "processes" (apropos "process" had too many hits). > > That led me to `list-processes', which led me to `list-processes--refresh'. > > That led me to `process-list', which I imagine you can use to get > what you want. These are for processes that Emacs launched. Other processes running on the system will not show. > HTH. Remember: `apropos' and its friends are your friends. Right, because list-system-processes is also there. ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <<83siz1z58a.fsf@gnu.org>]
* RE: Detecting a running process in Elisp [not found] ` <<83siz1z58a.fsf@gnu.org> @ 2013-07-26 16:17 ` Drew Adams 2013-07-26 18:49 ` Eli Zaretskii [not found] ` <<83mwp9yx5f.fsf@gnu.org> 0 siblings, 2 replies; 16+ messages in thread From: Drew Adams @ 2013-07-26 16:17 UTC (permalink / raw) To: Eli Zaretskii, help-gnu-emacs > > Without knowing anything about processes in Elisp, I tried > > using apropos "processes" (apropos "process" had too many hits). > > > > That led me to `list-processes', which led me to `list-processes-- > > refresh'. That led me to `process-list', which I imagine you can > > use to get what you want. > > These are for processes that Emacs launched. Other processes running > on the system will not show. > > > HTH. Remember: `apropos' and its friends are your friends. > > Right, because list-system-processes is also there. Good correction - `list-system-processes', not `list-processes' or `process-list'. [Too bad, BTW, that the doc string of `list-processes' says "Display a list of all processes" - N.B. "ALL", not all processes that Emacs has launched. It mentions exclusion of certain processes, depending on argument QUERY-ONLY and whether exited or signaled, but it does not go beyond that to characterize which other processes might be excluded.] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 16:17 ` Drew Adams @ 2013-07-26 18:49 ` Eli Zaretskii [not found] ` <<83mwp9yx5f.fsf@gnu.org> 1 sibling, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2013-07-26 18:49 UTC (permalink / raw) To: help-gnu-emacs > Date: Fri, 26 Jul 2013 09:17:55 -0700 (PDT) > From: Drew Adams <drew.adams@oracle.com> > > [Too bad, BTW, that the doc string of `list-processes' says > "Display a list of all processes" - N.B. "ALL", not all processes > that Emacs has launched. Fixed. ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <<83mwp9yx5f.fsf@gnu.org>]
* RE: Detecting a running process in Elisp [not found] ` <<83mwp9yx5f.fsf@gnu.org> @ 2013-07-26 18:54 ` Drew Adams 0 siblings, 0 replies; 16+ messages in thread From: Drew Adams @ 2013-07-26 18:54 UTC (permalink / raw) To: Eli Zaretskii, help-gnu-emacs > > [Too bad, BTW, that the doc string of `list-processes' says > > "Display a list of all processes" - N.B. "ALL", not all processes > > that Emacs has launched. > > Fixed. That was quick. Thx. ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.1854.1374853118.12400.help-gnu-emacs@gnu.org>]
* Re: Detecting a running process in Elisp [not found] ` <mailman.1854.1374853118.12400.help-gnu-emacs@gnu.org> @ 2013-07-26 16:58 ` Pascal J. Bourguignon 2013-07-26 18:33 ` Eli Zaretskii [not found] ` <mailman.1870.1374863596.12400.help-gnu-emacs@gnu.org> 0 siblings, 2 replies; 16+ messages in thread From: Pascal J. Bourguignon @ 2013-07-26 16:58 UTC (permalink / raw) To: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> Date: Fri, 26 Jul 2013 08:26:25 -0700 (PDT) >> From: gentsquash@gmail.com >> >> I have a process "ScidvsMac" which I'd like to detect in >> Elisp. I'm currently using >> >> (search "ScidvsMac" (shell-command-to-string "ps -A")) >> >> but is there something cleaner? > > There's list-system-processes to list all of the processes, and > process-attributes to examine their attributes, including name, > command line, etc. And what is the function to lock the system so that the list of PIDs returned by list-system-processes is consistent with the actual processes in the system when you call process-attributes on them? -- __Pascal Bourguignon__ http://www.informatimago.com/ A bad day in () is better than a good day in {}. You know you've been lisping too long when you see a recent picture of George Lucas and think "Wait, I thought John McCarthy was dead!" -- Dalek_Baldwin ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 16:58 ` Pascal J. Bourguignon @ 2013-07-26 18:33 ` Eli Zaretskii [not found] ` <mailman.1870.1374863596.12400.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2013-07-26 18:33 UTC (permalink / raw) To: help-gnu-emacs > From: "Pascal J. Bourguignon" <pjb@informatimago.com> > Date: Fri, 26 Jul 2013 18:58:15 +0200 > > > There's list-system-processes to list all of the processes, and > > process-attributes to examine their attributes, including name, > > command line, etc. > > And what is the function to lock the system so that the list of PIDs > returned by list-system-processes is consistent with the actual > processes in the system when you call process-attributes on them? How is this relevant to the OP's question? ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <mailman.1870.1374863596.12400.help-gnu-emacs@gnu.org>]
* Re: Detecting a running process in Elisp [not found] ` <mailman.1870.1374863596.12400.help-gnu-emacs@gnu.org> @ 2013-07-26 20:57 ` Pascal J. Bourguignon 2013-07-27 7:43 ` Eli Zaretskii 0 siblings, 1 reply; 16+ messages in thread From: Pascal J. Bourguignon @ 2013-07-26 20:57 UTC (permalink / raw) To: help-gnu-emacs Eli Zaretskii <eliz@gnu.org> writes: >> From: "Pascal J. Bourguignon" <pjb@informatimago.com> >> Date: Fri, 26 Jul 2013 18:58:15 +0200 >> >> > There's list-system-processes to list all of the processes, and >> > process-attributes to examine their attributes, including name, >> > command line, etc. >> >> And what is the function to lock the system so that the list of PIDs >> returned by list-system-processes is consistent with the actual >> processes in the system when you call process-attributes on them? > > How is this relevant to the OP's question? It is relevant to the answer, to the proposed API. -- __Pascal Bourguignon__ http://www.informatimago.com/ A bad day in () is better than a good day in {}. You know you've been lisping too long when you see a recent picture of George Lucas and think "Wait, I thought John McCarthy was dead!" -- Dalek_Baldwin ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 20:57 ` Pascal J. Bourguignon @ 2013-07-27 7:43 ` Eli Zaretskii 0 siblings, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2013-07-27 7:43 UTC (permalink / raw) To: help-gnu-emacs > From: "Pascal J. Bourguignon" <pjb@informatimago.com> > Date: Fri, 26 Jul 2013 22:57:39 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> From: "Pascal J. Bourguignon" <pjb@informatimago.com> > >> Date: Fri, 26 Jul 2013 18:58:15 +0200 > >> > >> > There's list-system-processes to list all of the processes, and > >> > process-attributes to examine their attributes, including name, > >> > command line, etc. > >> > >> And what is the function to lock the system so that the list of PIDs > >> returned by list-system-processes is consistent with the actual > >> processes in the system when you call process-attributes on them? > > > > How is this relevant to the OP's question? > > It is relevant to the answer, to the proposed API. Fair enough, then please explain what problem(s) you have in mind. If you are thinking about a process that was alive when list-system-processes was called, but is no longer there when process-attributes is called for its PID, the process-attributes is already immune to that: it will return nil. In general, any method that walks the list of the processes, querying the OS about each one, is prone to the same issues. The only way to avoid that is to have a system call that will produce a single coherent snapshot of the processes, together with every one of their attributes you will ever want to know about. If the OS doesn't provide such a system call, there's nothing an application can do better than cope with processes that disappear during the walk. And, FWIW, "ps -A" does not "lock" the system, either, so it suffers from the same issues. In practical terms, such "disappearing" processes are not a concern, since they are not different from a process that exited just before you called list-system-processes. Unless you want to write an OS monitor in Emacs Lisp, this shouldn't bother you. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 15:26 Detecting a running process in Elisp gentsquash ` (2 preceding siblings ...) [not found] ` <mailman.1854.1374853118.12400.help-gnu-emacs@gnu.org> @ 2013-07-26 23:18 ` gentsquash 2013-07-26 23:57 ` Drew Adams ` (3 more replies) 3 siblings, 4 replies; 16+ messages in thread From: gentsquash @ 2013-07-26 23:18 UTC (permalink / raw) To: help-gnu-emacs Thanks, all, for your replies. I realize that I didn't give enough information. I'm running GNU Emacs 22.3.1 (i386-apple-darwin9.8.0, Carbon Version 1.6.0) under Mac OS. It appears there is no `list-system-processes' in Emacs22. [Aside: I've been quite happy with Carbon Emacs, but my understanding is that it is no longer updated. Is there a recommended version of Emacs23 (or 24?) for Mac users who are used to Carbon Emacs?] I had run `apropos' on "shell" and "command", but inexplicably didn't run it on "process". When I did that now, I didn't see -in Emacs22- a cmd for listing the system processes. /--------------------------------------------------------\ Eli Zaretskii > From: Drew Adams <drew....@oracle.com> > ... That led me to `process-list', which I imagine you > can use to get what you want. These are for processes that Emacs launched. Other processes running on the system will not show. \________________________________________________________/ In a shell, inside Emacs, I can run open /Applications/ChessJK/ScidvsMac.app However, I don't think this counts as launching-from-Emacs, and the ScidvsMac process does not show up in (process-list). Running `apropos' on "mac", and on "process", I did find `mac-process-activate', but this doesn't seem to be what I need. So... If I wanted to "launch" ScidvsMac (a chess database program) from Emacs, under Mac OS, how would I do it? Thanks again, everyone. -Jonathan ^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: Detecting a running process in Elisp 2013-07-26 23:18 ` gentsquash @ 2013-07-26 23:57 ` Drew Adams 2013-07-27 8:48 ` Eli Zaretskii ` (2 subsequent siblings) 3 siblings, 0 replies; 16+ messages in thread From: Drew Adams @ 2013-07-26 23:57 UTC (permalink / raw) To: gentsquash, help-gnu-emacs > I had run `apropos' on "shell" and "command", but inexplicably didn't > run it on "process". When I did that now, I didn't see -in Emacs22- > a cmd for listing the system processes. You probably did this anyway, but just a reminder that there are several apropos commands, in particular besides `apropos-command'. In this case you don't want to look only for Emacs *commands* with `process' in the name; you want to look for functions in general, and perhaps even variables too. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 23:18 ` gentsquash 2013-07-26 23:57 ` Drew Adams @ 2013-07-27 8:48 ` Eli Zaretskii 2013-07-27 9:07 ` Peter Dyballa 2013-07-27 10:20 ` Pascal J. Bourguignon 3 siblings, 0 replies; 16+ messages in thread From: Eli Zaretskii @ 2013-07-27 8:48 UTC (permalink / raw) To: help-gnu-emacs > Date: Fri, 26 Jul 2013 16:18:42 -0700 (PDT) > From: gentsquash@gmail.com > > Thanks, all, for your replies. I realize that I didn't give > enough information. I'm running > > GNU Emacs 22.3.1 (i386-apple-darwin9.8.0, Carbon Version 1.6.0) > > under Mac OS. It appears there is no `list-system-processes' in Emacs22. Indeed. Why not upgrade? > Eli Zaretskii > > From: Drew Adams <drew....@oracle.com> > > ... That led me to `process-list', which I imagine you > > can use to get what you want. > > These are for processes that Emacs launched. Other processes > running on the system will not show. > \________________________________________________________/ > > > In a shell, inside Emacs, I can run > > open /Applications/ChessJK/ScidvsMac.app > > However, I don't think this counts as launching-from-Emacs It doesn't. Emacs subprocesses are those created by call-process, call-process-region, and start-process. > So... If I wanted to "launch" ScidvsMac (a chess database program) > from Emacs, under Mac OS, how would I do it? Use start-process. There are commands that use that, from Dired, for example. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 23:18 ` gentsquash 2013-07-26 23:57 ` Drew Adams 2013-07-27 8:48 ` Eli Zaretskii @ 2013-07-27 9:07 ` Peter Dyballa 2013-07-27 10:20 ` Pascal J. Bourguignon 3 siblings, 0 replies; 16+ messages in thread From: Peter Dyballa @ 2013-07-27 9:07 UTC (permalink / raw) To: gentsquash; +Cc: help-gnu-emacs Am 27.07.2013 um 01:18 schrieb gentsquash@gmail.com: > [Aside: I've been quite happy with Carbon Emacs, but my understanding > is that it is no longer updated. Is there a recommended version of > Emacs23 (or 24?) for Mac users who are used to Carbon Emacs?] Carbon Emacs is dead. Since years. There are some compiled versions of the NS variants of GNU Emacs 24.3 and 24.3.50 (development version) around. Aquamacs Emacs is among them. The best approach, IMO, is to get the sources of GNU Emacs 24.3 and then apply the patches from YAMAMOTO Mitsuharu, available from /ftp:anonymous@ftp.math.s.chiba-u.ac.jp:/emacs (TRAMP syntax), to compile the "AppKit" variant with a much deeper integration into Mac OS X. -- Greetings Pete Claiming that the Macintosh is inferior to Windows because most people use Windows, is like saying that all other restaurants serve food that is inferior to McDonald's. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: Detecting a running process in Elisp 2013-07-26 23:18 ` gentsquash ` (2 preceding siblings ...) 2013-07-27 9:07 ` Peter Dyballa @ 2013-07-27 10:20 ` Pascal J. Bourguignon 3 siblings, 0 replies; 16+ messages in thread From: Pascal J. Bourguignon @ 2013-07-27 10:20 UTC (permalink / raw) To: help-gnu-emacs gentsquash@gmail.com writes: > Thanks, all, for your replies. I realize that I didn't give > enough information. I'm running > > GNU Emacs 22.3.1 (i386-apple-darwin9.8.0, Carbon Version 1.6.0) > > under Mac OS. It appears there is no `list-system-processes' in Emacs22. Well emacs hasn't been updated for Mac OS for at least 13 years now. You're really using an old system. Now if you mean Mac OS X (i386-apple-darwin9.8.0), then my advice is to use http://www.emacsformacosx.com/ -- __Pascal Bourguignon__ http://www.informatimago.com/ A bad day in () is better than a good day in {}. You know you've been lisping too long when you see a recent picture of George Lucas and think "Wait, I thought John McCarthy was dead!" -- Dalek_Baldwin ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2013-07-27 10:20 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-07-26 15:26 Detecting a running process in Elisp gentsquash 2013-07-26 15:37 ` Eli Zaretskii 2013-07-26 15:50 ` Drew Adams 2013-07-26 15:54 ` Eli Zaretskii [not found] ` <<83siz1z58a.fsf@gnu.org> 2013-07-26 16:17 ` Drew Adams 2013-07-26 18:49 ` Eli Zaretskii [not found] ` <<83mwp9yx5f.fsf@gnu.org> 2013-07-26 18:54 ` Drew Adams [not found] ` <mailman.1854.1374853118.12400.help-gnu-emacs@gnu.org> 2013-07-26 16:58 ` Pascal J. Bourguignon 2013-07-26 18:33 ` Eli Zaretskii [not found] ` <mailman.1870.1374863596.12400.help-gnu-emacs@gnu.org> 2013-07-26 20:57 ` Pascal J. Bourguignon 2013-07-27 7:43 ` Eli Zaretskii 2013-07-26 23:18 ` gentsquash 2013-07-26 23:57 ` Drew Adams 2013-07-27 8:48 ` Eli Zaretskii 2013-07-27 9:07 ` Peter Dyballa 2013-07-27 10:20 ` Pascal J. Bourguignon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).