Packages
nerves_runtime
0.2.0
0.13.13
0.13.12
0.13.11
retired
0.13.10
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.10
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
retired
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Small, general runtime utilities for Nerves devices
Current section
Files
Jump to
Current section
Files
nerves_runtime
README.md
README.md
# Nerves.Runtime
[](https://travis-ci.org/nerves-project/nerves_runtime.svg)
[](https://hex.pm/packages/nerves_runtime)
Nerves.Runtime is an optional component of Nerves but it's really handy and has
a small footprint. Here are some of its features:
* A custom shell for debugging and running commands in a `bash` shell like
environment
* A small Linux kernel `uevent` application for capturing hardware change events
and more
* More to come...
## The Nerves Runtime Shell
Nerves devices typically only expose an Elixir or Erlang shell prompt. While
this is handy, so tasks are quicker to run in a more `bash` shell-like
environment. The Nerves runtime shell provides a limited approximation to this
that can be run without leaving the Erlang runtime. Here's an example run:
```
iex(1)> [Ctrl+G]
User switch command
--> s sh
--> j
1 {erlang,apply,[#Fun<Elixir.IEx.CLI.1.112225073>,[]]}
2* {sh,start,[]}
--> c
Nerves Interactive Command Shell
Type Ctrl+G to exit the shell and return to Erlang job control.
This is not a normal shell, so try not to type Ctrl+C.
/srv/erlang[1]>
```
There are a few caveats to using this shell right now, so you'll have to be
careful when you use it:
1. `Ctrl+C Ctrl+C` exits the Erlang VM and will reboot or hang your system
depending on how `erlinit` is configured.
2. Because of the `Ctrl+C` caveat, you can't easily break out of long running
programs. As a workaround, start another shell using `Ctrl+G` and `kill` the
offending program.
3. Commands are run asynchronously. This is unexpected if you're used to a
regular shell. For most commands, it's harmless. One side effect is that if a
command changes the current directory, it could be that the prompt shows the
wrong path.
## Installation
The package can be installed
by adding `nerves_runtime` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:nerves_runtime, "~> 0.2.0"}]
end
```
Docs can be found at [https://hexdocs.pm/nerves_runtime](https://hexdocs.pm/nerves_runtime).