unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* A command ran from emacs receives a "signal 1" while it does not when run in a shell
@ 2004-09-25 21:58 François Fleuret
  2004-09-27 11:13 ` François Fleuret
  0 siblings, 1 reply; 4+ messages in thread
From: François Fleuret @ 2004-09-25 21:58 UTC (permalink / raw)


Hi,

I am trying to write an elisp application to control vlc, the
multi-media player and I have a weird bug.

Vlc can be run in such a mode that it gets commands in stdin and send
results in stdout. If ran from a bash shell (in an xterm), I can for
instance send it "add file://toto.mp3\n" and it will play the given
mp3, if I send "stop\n", it will stop playing and wait for more
commands.

If I set up a process in emacs with start-process, set-process-filter
and set-process-sentinel, and send the first string with
process-send-string, it will play the mp3. But if I send the second
string, it will stop and then it will tells me (in its stdout) "signal
1 received" and dies. The sentinel in emacs will get "finished".

Did I miss something here?

-- 
François Fleuret

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: A command ran from emacs receives a "signal 1" while it does not when run in a shell
  2004-09-25 21:58 A command ran from emacs receives a "signal 1" while it does not when run in a shell François Fleuret
@ 2004-09-27 11:13 ` François Fleuret
  2004-09-27 13:09   ` Daniel Pittman
       [not found]   ` <mailman.4272.1096294098.1998.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 4+ messages in thread
From: François Fleuret @ 2004-09-27 11:13 UTC (permalink / raw)


Hi,

François Fleuret wrote on 25 Sep 2004 22:58:05 MET:

> If I set up a process in emacs with start-process,
> set-process-filter and set-process-sentinel, and send the first
> string with process-send-string, it will play the mp3. But if I send
> the second string, it will stop and then it will tells me (in its
> stdout) "signal 1 received" and dies. The sentinel in emacs will get
> "finished".

If I invoke vlc through a wrapper shell-script of the form

,------------------
| #!/bin/bash
| vlc --intf rc
`------------------

there is no problem anymore. I do not understand a lot to the UNIX
signal handling thing, but is it possible that emacs sends a signal 1
to the invoked executable ?

Cheers,

-- 
François Fleuret

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: A command ran from emacs receives a "signal 1" while it does not when run in a shell
  2004-09-27 11:13 ` François Fleuret
@ 2004-09-27 13:09   ` Daniel Pittman
       [not found]   ` <mailman.4272.1096294098.1998.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 4+ messages in thread
From: Daniel Pittman @ 2004-09-27 13:09 UTC (permalink / raw)


On 27 Sep 2004, François Fleuret wrote:
> François Fleuret wrote on 25 Sep 2004 22:58:05 MET:
>
>> If I set up a process in emacs with start-process,
>> set-process-filter and set-process-sentinel, and send the first
>> string with process-send-string, it will play the mp3. But if I send
>> the second string, it will stop and then it will tells me (in its
>> stdout) "signal 1 received" and dies. The sentinel in emacs will get
>> "finished".
>
> If I invoke vlc through a wrapper shell-script of the form
>
> ,------------------
> | #!/bin/bash
> | vlc --intf rc
> `------------------
>
> there is no problem anymore. I do not understand a lot to the UNIX
> signal handling thing, but is it possible that emacs sends a signal 1
> to the invoked executable ?

Signal 1 is 'HUP' under Linux, at least, and under most Unix systems as
I recall.  That is sent when the controlling terminal of an application
is closed.

If Emacs uses a pty to talk to the vlc instance, and that was closed
at some point, that would generate a SIGHUP to the application.

Using the shell presumably insulates from that in some fashion.

xine should probably not die when the controlling terminal is closed.

     Daniel

-- 
The true way to overcome the evil of class distinctions is not to
denounce them as revolutionists denounce them, but to ignore them as
children ignore them.
        -- Charles Dickens

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: A command ran from emacs receives a "signal 1" while it does not when run in a shell
       [not found]   ` <mailman.4272.1096294098.1998.help-gnu-emacs@gnu.org>
@ 2004-09-27 14:28     ` François Fleuret
  0 siblings, 0 replies; 4+ messages in thread
From: François Fleuret @ 2004-09-27 14:28 UTC (permalink / raw)


Hi,

> If Emacs uses a pty to talk to the vlc instance, and that was closed
> at some point, that would generate a SIGHUP to the application.
>
> Using the shell presumably insulates from that in some fashion.

I do not get it. vlc stops, pretending to get a SIGHUP, while the
wrapper does not, altough it would die if I kill -HUP it from a shell
...

That's weird.

-- 
François Fleuret                              EPFL - CVLAB/LCN

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-09-27 14:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-25 21:58 A command ran from emacs receives a "signal 1" while it does not when run in a shell François Fleuret
2004-09-27 11:13 ` François Fleuret
2004-09-27 13:09   ` Daniel Pittman
     [not found]   ` <mailman.4272.1096294098.1998.help-gnu-emacs@gnu.org>
2004-09-27 14:28     ` François Fleuret

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).