Go to file
Nick Rosbrook 6fec0fed10 shared/install: correctly install alias for units outside search path
Currently, if a unit file is enabled from outside of the search path,
and that unit has an alias, then the symlink ends up pointing outside of
the search path too. For example:

 $ cat /tmp/a.service
 [Service]
 ExecStart=sleep infinity

 [Install]
 Alias=b.service
 WantedBy=multi-user.target

 $ systemctl enable /tmp/a.service
 Created symlink /etc/systemd/system/a.service → /tmp/a.service.
 Created symlink /etc/systemd/system/b.service → /tmp/a.service.
 Created symlink /etc/systemd/system/multi-user.target.wants/a.service → /tmp/a.service.

This then means the alias is treated as a separate unit:

 $ systemctl start a.service
 $ sudo systemctl status a
 ● a.service
  Loaded: loaded (/etc/systemd/system/a.service; enabled; preset: enabled)
  Active: active (running) since Fri 2024-03-15 15:17:49 EDT; 9s ago
 Main PID: 769593 (sleep)
   Tasks: 1 (limit: 18898)
  Memory: 220.0K
     CPU: 5ms
  CGroup: /system.slice/a.service
          └─769593 sleep infinity

 Mar 15 15:17:49 six systemd[1]: Started a.service.
 $ sudo systemctl status b
 ○ b.service
  Loaded: loaded (/etc/systemd/system/b.service; alias)
  Active: inactive (dead)

To fix this, make sure the alias uses a target that is inside the search
path. Since the unit file itself is outside of the search path, a
symlink inside the search path will have been created already. Hence,
just point the alias symlink to that recently created symlink.
2024-03-18 11:58:07 +00:00
.clusterfuzzlite ci: unpin CFLite 2022-04-26 09:13:57 +00:00
.github mkosi: Do disk space cleanup asynchronously 2024-03-16 05:31:25 +09:00
.semaphore semaphore: remove workaround for adduser 2024-03-11 11:15:12 +00:00
catalog catalog: update Polish translation 2024-03-12 11:37:17 +01:00
coccinelle cocci: merge mfree.cocci and mfree_return.cocci (#30838) 2024-01-09 12:24:37 +09:00
docs Merge pull request #31811 from yuwata/network-pin-persistent-storage 2024-03-18 11:08:21 +00:00
factory man: don't suggest using pam_unix.so's use_authtok switch 2024-01-17 23:59:05 +00:00
hwdb.d hwdb: Add touchpad configuration for ThinkPad E495 2024-03-10 23:25:32 +00:00
LICENSES LICENSES/README.md: fix syntax 2023-07-08 22:33:53 +00:00
man man: add missing "and" to importctl description 2024-03-16 12:52:48 +01:00
mime creds-util: add a concept of "user-scoped" credentials 2024-01-30 17:07:47 +01:00
mkosi.conf.d Build distribution packages in mkosi 2024-03-07 10:47:19 +01:00
mkosi.images mkosi: Allow booting without secure boot 2024-03-13 23:42:34 +01:00
modprobe.d modprobe: set 'ifb numifbs=0' to avoid autocreating ifb0 2024-01-12 23:24:54 +00:00
network network: fix 6rd tunnel link section name 2024-01-12 21:42:04 +00:00
pkg Switch opensuse packaging specs source url to src.opensuse.org 2024-03-17 16:45:33 +01:00
po po: add pkg/debian to POTFILES.skip 2024-03-14 13:41:56 +00:00
presets preset: enable homed sidecar services 2024-02-08 22:44:00 +00:00
rules.d udev: Add /dev/media/by-path symlinks for media controllers 2024-02-22 19:27:29 +00:00
shell-completion Update _udevadm 2024-03-16 21:51:56 +09:00
src shared/install: correctly install alias for units outside search path 2024-03-18 11:58:07 +00:00
sysctl.d sysctl.d: Fix pid_max comment 2023-10-31 13:07:49 +01:00
sysusers.d Revert "sysusers.d: create the user for systemd-journal-upload.service" 2023-12-04 19:44:10 +01:00
test shared/install: correctly install alias for units outside search path 2024-03-18 11:58:07 +00:00
tmpfiles.d networkctl: introduce "persistent-storage" command 2024-03-12 01:57:16 +09:00
tools meson: Rename add-git-hook.sh to git-setup.sh and configure git in it 2024-03-15 17:27:49 +01:00
units tpm2-setup: Add --graceful 2024-03-17 13:34:51 +01:00
xorg xorg/50-systemd-user: add a full license header 2021-10-01 14:45:00 +02:00
.clang-format Improve the formatting by adding AlignArrayOfStructures and setting it to Right(right justify) 2024-03-06 15:24:23 +01:00
.ctags editors: Prevent ctags from following symlinks 2019-02-15 11:01:20 -08:00
.dir-locals.el scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
.editorconfig editorconfig: add NEWS whitespace configuration 2023-10-26 22:41:03 +01:00
.gitattributes Mark all base64 files as generated 2023-08-16 12:49:45 +02:00
.gitignore Update to mkosi v19 2023-11-28 19:54:58 +01:00
.gitmodules Update arch/debian packaging source URLs 2024-03-17 16:47:19 +01:00
.mailmap mailmap: "reduce contributor count by 13" 2023-08-16 12:49:42 +02:00
.packit.yml Revert "packit: temporarily build systemd without BPF stuff" 2024-02-11 16:45:03 +01:00
.pylintrc Add .pylintrc to globally suppress warnings we don't really care about 2023-08-10 18:13:29 +02:00
.vimrc vimrc: explicitly set shiftwidth for the C file type 2023-09-18 13:11:45 +02:00
.ycm_extra_conf.py ycm: add doc string for all the functions in configuration file 2017-11-29 13:21:49 -07:00
LICENSE.GPL2 relicense to LGPLv2.1 (with exceptions) 2012-04-12 00:24:39 +02:00
LICENSE.LGPL2.1 licence: remove references to old FSF address 2012-12-17 11:41:31 +01:00
meson.build meson: Rename add-git-hook.sh to git-setup.sh and configure git in it 2024-03-15 17:27:49 +01:00
meson.version meson: Start adding devel and rc suffixes to the project version 2024-02-14 15:36:34 +01:00
meson_options.txt fix the value of default shells to use /bin and not /usr/bin 2024-02-29 21:51:03 +01:00
mkosi.conf mkosi: Add BuildSourcesEphemeral=yes 2024-03-08 19:37:27 +01:00
NEWS NEWS: style fixes and a few reformulations 2024-03-16 15:16:01 +01:00
README README: mention fq_codel 2024-02-22 19:14:31 +00:00
README.md Revert "docs: use collections to structure the data" 2024-02-23 09:48:47 +01:00
TODO TODO: various things noticed while writing NEWS 2024-03-15 15:25:15 +01:00

Systemd

System and Service Manager

Semaphore CI 2.0 Build Status
Coverity Scan Status
OSS-Fuzz Status
CIFuzz
CII Best Practices
CentOS CI - CentOS 9
CentOS CI - Arch
CentOS CI - Arch (sanitizers)
Fossies codespell report
Weblate
Coverage Status
Packaging status
OpenSSF Scorecard

Details

Most documentation is available on systemd's web site.

Assorted, older, general information about systemd can be found in the systemd Wiki.

Information about build requirements is provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the Code Map for information about this repository's layout and content.

Please see the Hacking guide for information on how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel

Stable branches with backported patches are available in the stable repo.