* Understanding the behaviour of Emacs and Emacs Client
@ 2022-02-23 3:23 Pankaj Jangid
2022-02-23 6:56 ` Jean Louis
2022-02-23 12:26 ` Eli Zaretskii
0 siblings, 2 replies; 8+ messages in thread
From: Pankaj Jangid @ 2022-02-23 3:23 UTC (permalink / raw)
To: help-gnu-emacs
I am on version 29 (Git-master). And I "make install" into $HOME/.local
on a Debian (stable) system. I am using Gnome.
Now I have two application icons - Emacs and Emacs (Client). I want to
understand the behaviour of these two links. Following is what is
happening on my system and I want to know if that is the desired
behaviour:
1. When I launch Emacs by clicking "Emacs" icon from apps. Emacs
launches as usual and shows "Emacs (Client)" near the Activities menu
in Gnome shell. And when I exit Emacs, C-x C-c, it is perfectly
shutdown.
2. When I launch Emacs by clicking "Emacs (Client)" icon from
apps. Emacs launches as expected. And shows "Emacs (Client)" near the
Activities menu. But when I want to exit this instance of Emacs, I
press C-x C-c and the frame is gone. But there is still an Emacs
process running.
I want to know if this is the desired behaviour of Emacs. And if Yes
then what is the official way to terminate the residual Emacs process in
case (2) above?
~Regards Pankaj
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-23 3:23 Understanding the behaviour of Emacs and Emacs Client Pankaj Jangid
@ 2022-02-23 6:56 ` Jean Louis
2022-02-23 8:41 ` Pankaj Jangid
2022-02-23 12:26 ` Eli Zaretskii
1 sibling, 1 reply; 8+ messages in thread
From: Jean Louis @ 2022-02-23 6:56 UTC (permalink / raw)
To: Pankaj Jangid; +Cc: help-gnu-emacs
* Pankaj Jangid <pankaj@codeisgreat.org> [2022-02-23 06:25]:
> I am on version 29 (Git-master). And I "make install" into $HOME/.local
> on a Debian (stable) system. I am using Gnome.
>
> Now I have two application icons - Emacs and Emacs (Client). I want to
> understand the behaviour of these two links. Following is what is
> happening on my system and I want to know if that is the desired
> behaviour:
>
> 1. When I launch Emacs by clicking "Emacs" icon from apps. Emacs
> launches as usual and shows "Emacs (Client)" near the Activities menu
> in Gnome shell. And when I exit Emacs, C-x C-c, it is perfectly
> shutdown.
>
> 2. When I launch Emacs by clicking "Emacs (Client)" icon from
> apps. Emacs launches as expected. And shows "Emacs (Client)" near the
> Activities menu. But when I want to exit this instance of Emacs, I
> press C-x C-c and the frame is gone. But there is still an Emacs
> process running.
>
> I want to know if this is the desired behaviour of Emacs. And if Yes
> then what is the official way to terminate the residual Emacs process in
> case (2) above?
Emacs Client will connect to Emacs server or daemon.
And here it output from
$ emacs --help
use this to understand how to run Emacs daemon, there are few ways.
Usage: emacs [OPTION-OR-FILENAME]...
Run Emacs, the extensible, customizable, self-documenting real-time
display editor. The recommended way to start Emacs for normal editing
is with no options at all.
Run M-x info RET m emacs RET m emacs invocation RET inside Emacs to
read the main documentation for these command-line arguments.
Initialization options:
--batch do not do interactive display; implies -q
--chdir DIR change to directory DIR
--daemon, --bg-daemon[=NAME] start a (named) server in the background
--fg-daemon[=NAME] start a (named) server in the foreground
--debug-init enable Emacs Lisp debugger for init file
--display, -d DISPLAY use X server DISPLAY
--module-assertions assert behavior of dynamic modules
--dump-file FILE read dumped state from FILE
--fingerprint output fingerprint and exit
--seccomp=FILE read Seccomp BPF filter from FILE
--no-build-details do not add build details such as time stamps
--no-desktop do not load a saved desktop
--no-init-file, -q load neither ~/.emacs nor default.el
--no-loadup, -nl do not load loadup.el into bare Emacs
--no-site-file do not load site-start.el
--no-x-resources do not load X resources
--no-site-lisp, -nsl do not add site-lisp directories to load-path
--no-splash do not display a splash screen on startup
--no-window-system, -nw do not communicate with X, ignoring $DISPLAY
--quick, -Q equivalent to:
-q --no-site-file --no-site-lisp --no-splash
--no-x-resources
--script FILE run FILE as an Emacs Lisp script
--terminal, -t DEVICE use DEVICE for terminal I/O
--user, -u USER load ~USER/.emacs instead of your own
Action options:
FILE visit FILE
+LINE go to line LINE in next FILE
+LINE:COLUMN go to line LINE, column COLUMN, in next FILE
--directory, -L DIR prepend DIR to load-path (with :DIR, append DIR)
--eval EXPR evaluate Emacs Lisp expression EXPR
--execute EXPR evaluate Emacs Lisp expression EXPR
--file FILE visit FILE
--find-file FILE visit FILE
--funcall, -f FUNC call Emacs Lisp function FUNC with no arguments
--insert FILE insert contents of FILE into current buffer
--kill exit without asking for confirmation
--load, -l FILE load Emacs Lisp FILE using the load function
--visit FILE visit FILE
Display options:
--background-color, -bg COLOR window background color
--basic-display, -D disable many display features;
used for debugging Emacs
--border-color, -bd COLOR main border color
--border-width, -bw WIDTH width of main border
--color, --color=MODE override color mode for character terminals;
MODE defaults to `auto', and
can also be `never', `always',
or a mode name like `ansi8'
--cursor-color, -cr COLOR color of the Emacs cursor indicating point
--font, -fn FONT default font; must be fixed-width
--foreground-color, -fg COLOR window foreground color
--fullheight, -fh make the first frame high as the screen
--fullscreen, -fs make the first frame fullscreen
--fullwidth, -fw make the first frame wide as the screen
--maximized, -mm make the first frame maximized
--geometry, -g GEOMETRY window geometry
--no-bitmap-icon, -nbi do not use picture of gnu for Emacs icon
--iconic start Emacs in iconified state
--internal-border, -ib WIDTH width between text and main border
--line-spacing, -lsp PIXELS additional space to put between lines
--mouse-color, -ms COLOR mouse cursor color in Emacs window
--name NAME title for initial Emacs frame
--no-blinking-cursor, -nbc disable blinking cursor
--reverse-video, -r, -rv switch foreground and background
--title, -T TITLE title for initial Emacs frame
--vertical-scroll-bars, -vb enable vertical scroll bars
--xrm XRESOURCES set additional X resources
--parent-id XID set parent window
--help display this help and exit
--version output version information and exit
You can generally also specify long option names with a single -; for
example, -batch as well as --batch. You can use any unambiguous
abbreviation for a --option.
Various environment variables and window system resources also affect
the operation of Emacs. See the main documentation.
Report bugs to bug-gnu-emacs@gnu.org. First, please see the Bugs
section of the Emacs manual or the file BUGS.
I use this file to start Emacs as server, subsequently emacsclient,
and if Emacs already run as server, I start emacsclient. So I use
emacsclient all the time.
#!/bin/bash
export EMACS_SOCKET_NAME="/run/user/1001/emacs/server"
if pgrep -f "emacs --bg-daemon" > /dev/null
then
espeak "Starting Emacs client"
emacsclient -c
else
espeak "Starting Emacs daemon"
emacs --bg-daemon
sleep 10
emacsclient -c
fi
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
In support of Richard M. Stallman
https://stallmansupport.org/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-23 6:56 ` Jean Louis
@ 2022-02-23 8:41 ` Pankaj Jangid
2022-02-23 12:02 ` Jean Louis
0 siblings, 1 reply; 8+ messages in thread
From: Pankaj Jangid @ 2022-02-23 8:41 UTC (permalink / raw)
To: help-gnu-emacs
Jean Louis <bugs@gnu.support> writes:
> * Pankaj Jangid <pankaj@codeisgreat.org> [2022-02-23 06:25]:
>> 1. When I launch Emacs by clicking "Emacs" icon from apps. Emacs
>> launches as usual and shows "Emacs (Client)" near the Activities menu
>> in Gnome shell. And when I exit Emacs, C-x C-c, it is perfectly
>> shutdown.
>>
>> 2. When I launch Emacs by clicking "Emacs (Client)" icon from
>> apps. Emacs launches as expected. And shows "Emacs (Client)" near the
>> Activities menu. But when I want to exit this instance of Emacs, I
>> press C-x C-c and the frame is gone. But there is still an Emacs
>> process running.
>>
>> I want to know if this is the desired behaviour of Emacs. And if Yes
>> then what is the official way to terminate the residual Emacs process in
>> case (2) above?
>
> <<cut>>
>
> I use this file to start Emacs as server, subsequently emacsclient,
> and if Emacs already run as server, I start emacsclient. So I use
> emacsclient all the time.
>
> #!/bin/bash
> export EMACS_SOCKET_NAME="/run/user/1001/emacs/server"
> if pgrep -f "emacs --bg-daemon" > /dev/null
> then
> espeak "Starting Emacs client"
> emacsclient -c
> else
> espeak "Starting Emacs daemon"
> emacs --bg-daemon
> sleep 10
> emacsclient -c
> fi
I understand how to launch the server and how to launch from CLI. May be
that I was not clear enough.
I just want to know how to cleanup (gracefully) the residual process
when there are no more clients connecting. i.e. case (2) above. User has
started Emacs by clicking on the "Emacs (Client)" icon in a graphical
environment.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-23 8:41 ` Pankaj Jangid
@ 2022-02-23 12:02 ` Jean Louis
2022-02-23 12:54 ` Eli Zaretskii
0 siblings, 1 reply; 8+ messages in thread
From: Jean Louis @ 2022-02-23 12:02 UTC (permalink / raw)
To: help-gnu-emacs
* Pankaj Jangid <pankaj@codeisgreat.org> [2022-02-23 11:44]:
> I just want to know how to cleanup (gracefully) the residual process
> when there are no more clients connecting. i.e. case (2) above. User has
> started Emacs by clicking on the "Emacs (Client)" icon in a graphical
> environment.
To cleanup you kill Emacs as daemon in memory. To remove Emacs
client's frame, I use C-x 5 0
You could remove daemon process with:
pkill "emacs --daemon" or other command line you used.
I don't do that almost ever, as computer once it turns off does i.t
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
In support of Richard M. Stallman
https://stallmansupport.org/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-23 3:23 Understanding the behaviour of Emacs and Emacs Client Pankaj Jangid
2022-02-23 6:56 ` Jean Louis
@ 2022-02-23 12:26 ` Eli Zaretskii
2022-02-28 3:29 ` Pankaj Jangid
1 sibling, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2022-02-23 12:26 UTC (permalink / raw)
To: help-gnu-emacs
> From: Pankaj Jangid <pankaj@codeisgreat.org>
> Date: Wed, 23 Feb 2022 08:53:35 +0530
>
> 1. When I launch Emacs by clicking "Emacs" icon from apps. Emacs
> launches as usual and shows "Emacs (Client)" near the Activities menu
> in Gnome shell. And when I exit Emacs, C-x C-c, it is perfectly
> shutdown.
>
> 2. When I launch Emacs by clicking "Emacs (Client)" icon from
> apps. Emacs launches as expected. And shows "Emacs (Client)" near the
> Activities menu. But when I want to exit this instance of Emacs, I
> press C-x C-c and the frame is gone. But there is still an Emacs
> process running.
>
> I want to know if this is the desired behaviour of Emacs.
Yes.
> And if Yes then what is the official way to terminate the residual
> Emacs process in case (2) above?
The official way is to type "M-x kill-emacs RET". (But in general, if
you use the "client" icon, the assumption is that you don't want to do
that. rather, leave the Emacs process running and use the client icon
to open a new frame next time you want to do something in Emacs --
this way, you keep all the history and the buffers inside the
session, and the startup will be faster.)
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-23 12:02 ` Jean Louis
@ 2022-02-23 12:54 ` Eli Zaretskii
0 siblings, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2022-02-23 12:54 UTC (permalink / raw)
To: help-gnu-emacs
> Date: Wed, 23 Feb 2022 15:02:53 +0300
> From: Jean Louis <bugs@gnu.support>
>
> pkill "emacs --daemon" or other command line you used.
No, just "M-x kill-emacs RET" from the client frame.
Killing the process will lose any unsaved work, will not call the
hooks in the likes of saveplace.el and desktop.el, etc. Not
recommended.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-23 12:26 ` Eli Zaretskii
@ 2022-02-28 3:29 ` Pankaj Jangid
2022-03-01 16:54 ` Suvayu Ali
0 siblings, 1 reply; 8+ messages in thread
From: Pankaj Jangid @ 2022-02-28 3:29 UTC (permalink / raw)
To: help-gnu-emacs
Eli Zaretskii <eliz@gnu.org> writes:
>> And if Yes then what is the official way to terminate the residual
>> Emacs process in case (2) above?
>
> The official way is to type "M-x kill-emacs RET". (But in general, if
> you use the "client" icon, the assumption is that you don't want to do
> that. rather, leave the Emacs process running and use the client icon
> to open a new frame next time you want to do something in Emacs --
> this way, you keep all the history and the buffers inside the
> session, and the startup will be faster.)
Thanks for the explanation, Eli. The only time I would want to do that
is when I am shutting down or rebooting the system for some reason. I
want to cleanly exit and save all work. "M-x kill-emacs RET" certainly
helps.
Customization var like "kill-emacs-with-last-frame" could be a good
idea. Or "C-x C-c" on last frame may be used to default to this
behaviour; this will prevent any lost work due to reboot or
shutdown. Because the daemon is invisible after last frame. Just an
idea. "C-x 5 0" remains the same.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Understanding the behaviour of Emacs and Emacs Client
2022-02-28 3:29 ` Pankaj Jangid
@ 2022-03-01 16:54 ` Suvayu Ali
0 siblings, 0 replies; 8+ messages in thread
From: Suvayu Ali @ 2022-03-01 16:54 UTC (permalink / raw)
To: Emacs mailing list
On Mon, Feb 28, 2022 at 3:29 AM Pankaj Jangid <pankaj@codeisgreat.org> wrote:
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> And if Yes then what is the official way to terminate the residual
> >> Emacs process in case (2) above?
> >
> > The official way is to type "M-x kill-emacs RET". (But in general, if
> > you use the "client" icon, the assumption is that you don't want to do
> > that. rather, leave the Emacs process running and use the client icon
> > to open a new frame next time you want to do something in Emacs --
> > this way, you keep all the history and the buffers inside the
> > session, and the startup will be faster.)
>
> Thanks for the explanation, Eli. The only time I would want to do that
> is when I am shutting down or rebooting the system for some reason. I
> want to cleanly exit and save all work. "M-x kill-emacs RET" certainly
> helps.
>
> Customization var like "kill-emacs-with-last-frame" could be a good
> idea. Or "C-x C-c" on last frame may be used to default to this
> behaviour; this will prevent any lost work due to reboot or
> shutdown. Because the daemon is invisible after last frame. Just an
> idea. "C-x 5 0" remains the same.
I use the following:
emacsclient --eval "(save-some-buffers t)" --eval "(kill-emacs)"
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-03-01 16:54 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-23 3:23 Understanding the behaviour of Emacs and Emacs Client Pankaj Jangid
2022-02-23 6:56 ` Jean Louis
2022-02-23 8:41 ` Pankaj Jangid
2022-02-23 12:02 ` Jean Louis
2022-02-23 12:54 ` Eli Zaretskii
2022-02-23 12:26 ` Eli Zaretskii
2022-02-28 3:29 ` Pankaj Jangid
2022-03-01 16:54 ` Suvayu Ali
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).