% podman-generate-systemd(1) ## NAME podman\-generate\-systemd - Generate systemd unit file(s) for a container. Not supported for the remote client ## SYNOPSIS **podman generate systemd** [*options*] *container|pod* ## DESCRIPTION **podman generate systemd** will create a systemd unit file that can be used to control a container or pod. By default, the command will print the content of the unit files to stdout. Note that this command is not supported for the remote client. ## OPTIONS: **--files**, **-f** Generate files instead of printing to stdout. The generated files are named {container,pod}-{ID,name}.service and will be placed in the current working directory. Note: On a system with SELinux enabled, the generated files will inherit contexts from the current working directory. Depending on the SELinux setup, changes to the generated files using `restorecon`, `chcon`, or `semanage` may be required to allow systemd to access these files. Alternatively, use the `-Z` option when running `mv` or `cp`. **--name**, **-n** Use the name of the container for the start, stop, and description in the unit file **--new** Create a new container via podman-run instead of starting an existing one. This option relies on container configuration files, which may not map directly to podman CLI flags; please review the generated output carefully before placing in production. Since we use systemd `Type=forking` service, using this option will force the container run with the detached param `-d` **--time**, **-t**=*value* Override the default stop timeout for the container with the given value. **--restart-policy**=*policy* Set the systemd restart policy. The restart-policy must be one of: "no", "on-success", "on-failure", "on-abnormal", "on-watchdog", "on-abort", or "always". The default policy is *on-failure*. ## Examples Create and print a systemd unit file for a container running nginx with an *always* restart policy and 1-second timeout to stdout. ``` $ podman create --name nginx nginx:latest $ podman generate systemd --restart-policy=always -t 1 nginx # container-de1e3223b1b888bc02d0962dd6cb5855eb00734061013ffdd3479d225abacdc6.service # autogenerated by Podman 1.8.0 # Wed Mar 09 09:46:45 CEST 2020 [Unit] Description=Podman container-de1e3223b1b888bc02d0962dd6cb5855eb00734061013ffdd3479d225abacdc6.service Documentation=man:podman-generate-systemd(1) [Service] Restart=always ExecStart=/usr/bin/podman start de1e3223b1b888bc02d0962dd6cb5855eb00734061013ffdd3479d225abacdc6 ExecStop=/usr/bin/podman stop -t 1 de1e3223b1b888bc02d0962dd6cb5855eb00734061013ffdd3479d225abacdc6 KillMode=none Type=forking PIDFile=/run/user/1000/overlay-containers/de1e3223b1b888bc02d0962dd6cb5855eb00734061013ffdd3479d225abacdc6/userdata/conmon.pid [Install] WantedBy=multi-user.target default.target ``` Create systemd unit files for a pod with two simple alpine containers. Note that these container services cannot be started or stopped individually via `systemctl`; they are managed by the pod service. You can still use `systemctl status` or journalctl to examine them. ``` $ podman pod create --name systemd-pod $ podman create --pod systemd-pod alpine top $ podman create --pod systemd-pod alpine top $ podman generate systemd --files --name systemd-pod /home/user/pod-systemd-pod.service /home/user/container-amazing_chandrasekhar.service /home/user/container-jolly_shtern.service $ cat pod-systemd-pod.service # pod-systemd-pod.service # autogenerated by Podman 1.8.0 # Wed Mar 09 09:52:37 CEST 2020 [Unit] Description=Podman pod-systemd-pod.service Documentation=man:podman-generate-systemd(1) Requires=container-amazing_chandrasekhar.service container-jolly_shtern.service Before=container-amazing_chandrasekhar.service container-jolly_shtern.service [Service] Restart=on-failure ExecStart=/usr/bin/podman start 77a818221650-infra ExecStop=/usr/bin/podman stop -t 10 77a818221650-infra KillMode=none Type=forking PIDFile=/run/user/1000/overlay-containers/ccfd5c71a088768774ca7bd05888d55cc287698dde06f475c8b02f696a25adcd/userdata/conmon.pid [Install] WantedBy=multi-user.target default.target ``` ## SEE ALSO podman(1), podman-container(1), systemctl(1), systemd.unit(5), systemd.service(5) ## HISTORY August 2019, Updated with pod support by Valentin Rothberg (rothberg at redhat dot com) April 2019, Originally compiled by Brent Baude (bbaude at redhat dot com)