mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
508133917d
See https://bugzilla.redhat.com/show_bug.cgi?id=1731772: when autofs4 is disabled in the kernel, proc-sys-fs-binfmt_misc.automount is not started, so the binfmt_misc module is never loaded. If we added a dependency on proc-sys-fs-binfmt_misc.mount to systemd-binfmt.service, things would work even if autofs4 was disabled, but we would unconditionally pull in the module and mount, which we don't want to do. (Right now we ony load the module if some binfmt is configured.) But let's make it easier to handle this case by doing two changes: 1. order systemd-binfmt.service after the .mount unit (so that the .service can count on the mount if both units are pulled in, even if .automount is skipped) 2. add [Install] section to the service unit. This way the user can do 'systemctl enable proc-sys-fs-binfmt_misc.mount' to get the appropriate behaviour.
32 lines
1.1 KiB
SYSTEMD
32 lines
1.1 KiB
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1+
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Set Up Additional Binary Formats
|
|
Documentation=man:systemd-binfmt.service(8) man:binfmt.d(5)
|
|
Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html
|
|
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
|
|
DefaultDependencies=no
|
|
Conflicts=shutdown.target
|
|
After=proc-sys-fs-binfmt_misc.automount
|
|
After=proc-sys-fs-binfmt_misc.mount
|
|
Before=sysinit.target shutdown.target
|
|
ConditionPathIsReadWrite=/proc/sys/
|
|
ConditionDirectoryNotEmpty=|/lib/binfmt.d
|
|
ConditionDirectoryNotEmpty=|/usr/lib/binfmt.d
|
|
ConditionDirectoryNotEmpty=|/usr/local/lib/binfmt.d
|
|
ConditionDirectoryNotEmpty=|/etc/binfmt.d
|
|
ConditionDirectoryNotEmpty=|/run/binfmt.d
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStart=@rootlibexecdir@/systemd-binfmt
|
|
TimeoutSec=90s
|