# dh_installsystemd

## NAME



           dh_installsystemd - install systemd unit files
    


## SYNOPSIS



           **dh_installsystemd**[_debhelper options_] [**--restart-after-upgrade**]
           [**--no-stop-on-upgrade**] [**--no-enable**] [**--no-start**] [**--name=**_name_]
           [_unit file_ ...]
    


## DESCRIPTION



           **dh_installsystemd** is a debhelper program that is responsible for
           installing package maintainer supplied systemd unit files.
    
           It also finds the service files installed by a package and
           generates _preinst_ , _postinst_ , and _prerm_ code blocks for enabling,
           disabling, starting, stopping, and restarting the corresponding
           systemd services, when the package is installed, updated, or
           removed. These snippets are added to the maintainer scripts by
           dh_installdeb(1).
    
           **deb-systemd-helper**(1) is used to enable and disable systemd units,
           thus it is not necessary that the machine actually runs systemd
           during package installation time, enabling happens on all machines
           in order to be able to switch from sysvinit to systemd and back.
    
           **dh_installsystemd** operates on all unit files installed by a
           package. For only generating blocks for specific unit files, pass
           them as arguments, "dh_installsystemd quota.service". Specific
           unit files can be excluded from processing using the **-X** common
           **debhelper**(1) option.
    


## FILES



           debian/_package_.mount, debian/_package_.path, debian/_package_ @.path,
           debian/_package_.service, debian/_package_ @.service,
           debian/_package_.socket, debian/_package_ @.socket,
           debian/_package_.target, debian/_package_ @.target,
           debian/_package_.timer, debian/_package_ @.timer
               If any of those files exists, they are installed into
               _usr/lib/systemd/system/_ in the package build directory.
    
           debian/_package_.tmpfile
               Only used in compat 12 or earlier.  In compat 13+, this file
               is handled by dh_installtmpfiles(1) instead.
    
               If this exists, it is installed into _usr/lib/tmpfiles.d/_ in
               the package build directory. Note that the "tmpfiles.d"
               mechanism is currently only used by systemd.
    


## OPTIONS



           **-n** , **--no-scripts**
               Do not modify _postinst_ /_postrm_ /_prerm_ scripts.
    
               Note: This option was silently ignored before debhelper/13.24.
    
           **--no-enable**
               Disable the service(s) on purge, but do not enable them on
               install.
    
               **Note** that this option does not affect whether the services are
               started.  Please remember to also use **--no-start** if the
               service should not be started.
    
           **--name=**_name_
               This option controls several things.
    
               It changes the name that **dh_installsystemd** uses when it looks
               for maintainer provided systemd unit files as listed in the
               "FILES" section.  As an example, **dh_installsystemd --name foo**
               will look for _debian/package.**foo**.service_ instead of
               _debian/package.service_).  These unit files are installed as
               _name.unit-extension_ (in the example, it would be installed as
               _**foo**.service_).
    
               Furthermore, if no unit files are passed explicitly as command
               line arguments, **dh_installsystemd** will only act on unit files
               called _name_ (rather than all unit files found in the package).
    
           **--restart-after-upgrade**
               Do not stop the unit file until after the package upgrade has
               been completed.  This is the default behaviour in compat 10.
    
               In earlier compat levels the default was to stop the unit file
               in the _prerm_ , and start it again in the _postinst_.
    
               This can be useful for daemons that should not have a possibly
               long downtime during upgrade. But you should make sure that
               the daemon will not get confused by the package being upgraded
               while it's running before using this option.
    
           **--no-restart-after-upgrade**
               Undo a previous **--restart-after-upgrade**(or the default of
               compat 10).  If no other options are given, this will cause
               the service to be stopped in the _prerm_ script and started
               again in the _postinst_ script.
    
           **-r** , **--no-stop-on-upgrade** , **--no-restart-on-upgrade**
               Do not stop service on upgrade. This has the side-effect of
               not restarting the service as a part of the upgrade.
    
               If you want to restart the service with minimal downtime,
               please use **--restart-after-upgrade**(default in compat 10 or
               later).  If you want the service to be restarted but be
               stopped during the upgrade, then please use
               **--no-restart-after-upgrade**(note the "after-upgrade").
    
               Note that the **--no-restart-on-upgrade** alias is deprecated and
               will be removed in compat 14.  This is to avoid confusion with
               the **--no-restart-after-upgrade** option.
    
           **--no-start**
               Do not start the unit file after upgrades and after initial
               installation (the latter is only relevant for services without
               a corresponding init script).
    
               **Note** that this option does not affect whether the services are
               enabled.  Please remember to also use **--no-enable** if the
               services should not be enabled.
    
           **unit file**...
               Only process and generate maintscripts for the installed unit
               files with the (base)name _unit file_.
    
               Note: **dh_installsystemd** will still install unit files from
               _debian/_ but it will not generate any maintscripts for them
               unless they are explicitly listed in **unit file**...
    


## NOTES



           This command is not idempotent. dh_prep(1) should be called
           between invocations of this command (with the same arguments).
           Otherwise, it may cause multiple instances of the same text to be
           added to maintainer scripts.
    


* * *