Building and running a session {#building-and-running-a-session}
A session is the first product-specific component started on boot. The session component is responsible for building a product's user experience. For more information on sessions, see session framework.
Booting into a session {#booting-into-a-session}
To boot into a session, do the following:
- For a session to run at boot you need to configure the product build with the session's URL. Identify the component URL for your session:
fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm
Replace the following:
* pkg-name: the package name
* your_session.cm: the name of your session, including the .cm
extension.
For more information, see
fuchsia-pkg and
Package name.
- Run the following command to include
session_managerandyour_sessionin your base image, configuringsession_managerto start your session:
fx set product.board \
--with-base=//src/session/bin/session_manager \
--with-base=//path/to/your/session \
--args=product_config.session_url="fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm"
Note: Selecting a product that already has a session manager package will
result in a build error because the packages will conflict. The core
product would be a good choice as a starting point as it includes only the
bare minimum needed to launch Fuchsia.
fx list-products and fx list-boards will show lists of the products and
boards available to be used in the fx set command. For more information on
fx commands see the fx documentation.
- Rebuild and re-pave the device.
This causes session_manager to start and launch your session.
For a full explanation of building a session component, see Writing a Hello World Session.
Launch a session from the command line {#launch-a-session-from-the-command-line}
There are cases when you don't want your session to launch at boot but still
want to be able to launch it from the command line. session_manager needs
to be running to launch a session. The session_manager target
ensures session_manager itself starts, but does not launch a session.
To launch a session from the command line, do the following:
- Add the
session_managertarget in the base dependency set, in addition to the session target.
fx set product.board --with-base=//src/session/bin/session_manager --with=//path/to/your/session
fx list-products and fx list-boards will show lists of the products and
boards available to be used in the fx set command. For more information on
fx commands see the fx documentation.
- Run the following command to rebuild and repave the device:
This causes session_manager to start without launching your session.
- Your session can now be launched from the command line.
Run the following command to launch your session:
ffx session launch fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm
For more information about the ffx session command, run
ffx session --help. For more information about ffx, see the
ffx documentation.