View Source mix run (Mix v1.12.0-rc.1)
Starts the current application and runs code.
mix run
can be used to start the current application dependencies,
the application itself, and optionally run some code in its context.
For long running systems, this is typically done with the --no-halt
option:
mix run --no-halt
Once the current application and its dependencies have been started, you can run a script in its context by passing a filename:
mix run my_app_script.exs arg1 arg2 arg3
Code to be executed can also be passed inline with the -e
option:
mix run -e "DbUtils.delete_old_records()" -- arg1 arg2 arg3
In both cases, the command-line arguments for the script or expression
are available in System.argv/0
.
Before doing anything, Mix will compile the current application if
needed, unless you pass --no-compile
.
If for some reason the application needs to be configured before it is
started, the --no-start
option can be used and you are then responsible
for starting all applications by using functions such as
Application.ensure_all_started/1
. For more information about the
application life-cycle and dynamically configuring applications, see
the Application
module.
If you need to pass options to the Elixir executable at the same time
you use mix run
, it can be done as follows:
elixir --sname hello -S mix run --no-halt
This task is automatically reenabled, so it can be called multiple times with different arguments.
Command-line options
--config
- loads the given configuration files--eval
,-e
- evaluates the given code--require
,-r
- executes the given pattern/file--parallel
,-p
- makes all requires parallel--preload-modules
- preloads all modules defined in applications--no-compile
- does not compile even if files require compilation--no-deps-check
- does not check dependencies--no-archives-check
- does not check archives--no-halt
- does not halt the system after running the command--no-mix-exs
- allows the command to run even if there is no mix.exs--no-start
- does not start applications after compilation--no-elixir-version-check
- does not check the Elixir version from mix.exs