[erlang-questions] [Erlang-Q] What does Ctrl+G do for the Eshell?

Gustav Simonsson gustav@REDACTED
Tue Oct 4 14:46:03 CEST 2011


See http://www.erlang.org/doc/man/erl.html
in particular the -noshell flag.

Regards,
Gustav Simonsson

On Tue, 2011-10-04 at 20:22 +0800, Barco You wrote:
> A further question regarding the erlang shell. Can we run an
> application without running the shell? As I know, to run an erlang app
> I have to first start the shell and then app:start().
> 
> As you said, erlang is more than an OS, so can I understand in the way
> that an app cannot run when the OS (Eshell) is not started?
> 
> Thanks,
> Barco
> Sent from my HTC
> 
> On Oct 4, 2011 7:54 PM, "Robert Virding"
> <robert.virding@REDACTED> wrote:
> > Hi, 
> > 
> > It was created back in the days when we were thinking of Erlang as
> more of an OS where you could run multiple "jobs" at the same time.
> Apart allowing you to start many concurrent jobs, not just the shell,
> it also multiplexes the i/o so only the connected job (the 'c'
> command) gets access, both read and write, to the user terminal. I/o
> to the other jobs is blocked. Otherwise having mixed i/o to/from many
> jobs at the same time becomes a right mess. 
> > 
> > The ^G works as all user terminal input passes through this layer.
> Now it should maybe be rewritten to use separate windows instead? If
> we ever get a "standard" window interface. :-) 
> > 
> > The name JCL (Job Control Language) is a joke on IBM's JCL which
> they used back in the old days to control their batch jobs. It was if
> course completely different. 
> > 
> > Robert 
> > 
> > ----- Original Message -----
> > 
> >> Such a fabulous facility! Thank-you for telling!
> >> On Oct 4, 2011 6:13 AM, "Anders Ramsell" <
> anders@REDACTED
> >> > wrote:
> >> > Barco You wrote:
> >> >> Hello Erlangers,
> >> >>
> >> >> When starting a erl shell, we will see a printout as:
> >> >> Eshell V5.8.4 (abort with ^G)
> >> >>
> >> >>
> >> >> then, I tried to press Ctrl+G and got:
> >> >> User switch command
> >> >> --> ls
> >> >> Unknown command
> >> >> --> q().
> >> >> Unknown command
> >> >> -->
> >> >>
> >> >> I can do nothing with the prompt "-->". How to quit from it? and
> >> >> what's "Ctrl+G" used for?
> >> >>
> >> >>
> >> > The words "abort with ^G" are in fact hiding an extremely useful
> >> > function called JCL (job control mode) [1]. I overlooked this
> >> > function for years. Now I use it on a near daily basis and just
> >> > love it.
> >> >
> >> > [1] http://www.erlang.org/doc/man/shell.html
> >> >
> >> > Assume you have an Erlang node named 'server@REDACTED' running as a
> >> > service/daemon on your system. Wouldn't it be great if you could
> >> > run interactive commands on this node just like you do in a
> >> > shell? JCL let's you do that with ease.
> >> >
> >> > Start up a new shell 'client@REDACTED' and hit ctrl-G to enter JCL.
> >> > Now start a remote shell to 'server@REDACTED'.
> >> >
> >> > | (client@REDACTED)1>
> >> > | User switch command
> >> > | --> r server@REDACTED
> >> > | --> j
> >> > | 1* {shell,start,[init]}
> >> > | 2 {server@REDACTED,shell,start,[]}
> >> >
> >> > You now have a local shell with id=1 and a remote shell with
> >> > id=2. Connect to the remote shell:
> >> >
> >> > | --> c 2
> >> > |
> >> > | (server@REDACTED)1>
> >> >
> >> > Now you have a shell on the server node where you can run any
> >> > command you want. This means you can call any exported function
> >> > in all modules loaded on the server. That kind of interaction
> >> > with a running system can be invaluable when trying to figure out
> >> > why it doesn't behave quite the way you planned.
> >> >
> >> > Now of course there is a backside to the story. Doing something
> >> > wrong may cause your system to crash. So hey - let's be careful
> >> > out there.
> >> >
> >> > /Anders
> >> >
> >> > _______________________________________________
> >> > erlang-questions mailing list
> >> > erlang-questions@REDACTED
> >> > http://erlang.org/mailman/listinfo/erlang-questions
> > 
> >> _______________________________________________
> >> erlang-questions mailing list
> >> erlang-questions@REDACTED
> >> http://erlang.org/mailman/listinfo/erlang-questions
> 
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions





More information about the erlang-questions mailing list