Go to file
Zbigniew Jędrzejewski-Szmek e8630e6952 pid1: use a cache for all unit aliases
This reworks how we load units from disk. Instead of chasing symlinks every
time we are asked to load a unit by name, we slurp all symlinks from disk
and build two hashmaps:
1. from unit name to either alias target, or fragment on disk
   (if an alias, we put just the target name in the hashmap, if a fragment
    we put an absolute path, so we can distinguish both).
2. from a unit name to all aliases

Reading all this data can be pretty costly (40 ms) on my machine, so we keep it
around for reuse.

The advantage is that we can reliably know what all the aliases of a given unit
are. This means we can reliably load dropins under all names. This fixes #11972.
2019-07-30 14:01:46 +02:00
.github FUNDING: this needs to be yaml 2019-07-08 16:55:31 +02:00
.lgtm/cpp-queries lgtm: complain about accept() [people should use accept4() instead, due to O_CLOEXEC] 2019-04-10 20:03:38 +02:00
.mkosi mkosi: update to Fedora30 (#12642) 2019-05-23 09:39:07 +02:00
catalog core: ExecCondition= for services 2019-07-17 11:35:02 +02:00
coccinelle tree-wide: use empty-to-root a bit more 2019-07-16 12:40:22 +02:00
docs core: ExecCondition= for services 2019-07-17 11:35:02 +02:00
factory/etc factory: include pam_keyinit.so in PAM factory configuration 2019-07-13 11:06:24 +02:00
hwdb Add accel mount matrix for Irbis TW90 2019-07-08 11:53:34 +02:00
man man: rework the description of Aliases and .wants/.requires directories 2019-07-17 14:27:23 +02:00
modprobe.d Add SPDX license headers to various assorted files 2017-11-19 19:08:15 +01:00
network udev,network: warn when .link or .network file has no [Match] section 2019-04-25 08:41:10 +02:00
po po: Fix typo in German translation 2019-07-14 00:07:40 +02:00
presets Drop my copyright headers 2018-06-14 13:03:20 +02:00
rules rules: enable hardware-related targets also for user instances 2019-05-28 14:18:11 +02:00
semaphoreci semaphore: avoid running autopkgtest with --apt-upgrade 2019-07-13 01:40:51 +03:00
shell-completion bash-completion: support ntp-servers and revert command for timedatectl 2019-07-17 06:59:12 +09:00
src pid1: use a cache for all unit aliases 2019-07-30 14:01:46 +02:00
sysctl.d coredump: rely on /proc exclusively to get the name of the crashing process 2019-06-26 11:17:23 +02:00
sysusers.d sysusers,tmpfiles: re-create systemd-network, systemd-resolve and systemd-timesync 2018-07-16 17:11:50 +02:00
test pid1: use a cache for all unit aliases 2019-07-30 14:01:46 +02:00
tmpfiles.d coredump: fixed bug - some coredump temp files could be lost 2019-05-31 12:57:35 +02:00
tools Merge pull request #12510 from keszybz/test-directives 2019-05-21 08:35:10 +09:00
travis-ci Free up some resources on Azure Pipelines 2019-07-17 13:28:38 +09:00
units units: add SystemCallErrorNumber=EPERM to systemd-portabled.service 2019-07-08 13:47:04 +09:00
xorg scripts: use 4 space indentation 2019-04-12 08:30:31 +02: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 scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
.gitattributes git: indicate that tabs are never OK in the systemd tree 2013-10-30 02:25:38 +01:00
.gitignore gitignore: add nspawn image lock and mkosi temporary files 2018-09-07 20:00:22 +02:00
.lgtm.yml lgtm: use python3 2018-12-10 03:07:17 +09:00
.mailmap update .mailmap 2019-04-02 17:31:00 +02:00
.travis.yml coverity: stop setting _Float* 2019-06-21 18:27:35 +03:00
.vimrc scripts: use 4 space indentation 2019-04-12 08:30:31 +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
azure-pipelines.yml Free up some resources on Azure Pipelines 2019-07-17 13:28:38 +09:00
configure build-sys: add basic support for ./configure && make && make install 2017-07-18 10:05:06 -04:00
fuzzbuzz.yaml fuzzbuzz: rename fuzz.yaml to fuzzbuzz.yaml 2019-07-10 05:11:52 +03: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
Makefile build-sys: Fix Makefile wrapper for install target (#6548) 2017-08-07 11:29:20 +02:00
meson_options.txt Add config and kernel commandline option to use short identifiers 2019-07-10 13:35:26 +02:00
meson.build network-generator: introduce new tool systemd-network-generator 2019-07-14 09:37:15 +09:00
mkosi.build mkosi: let's update the boot loader also in /efi 2019-03-01 12:41:32 +01:00
mkosi.default mkosi: create .mkosi directory 2016-10-06 11:53:58 -04:00
NEWS NEWS: update section name 2019-07-16 10:30:47 +09:00
README codespell: fix spelling errors 2019-04-29 16:47:18 +02:00
README.md Continuous Fuzzing Integration with Fuzzit 2019-06-14 21:09:40 +03:00
TODO core: ExecCondition= for services 2019-07-17 11:35:02 +02:00
zanata.xml po: add basic fedora.zanata.org configuration 2018-02-19 13:56:57 +01:00

systemd - System and Service Manager

Count of open issues over time Count of open pull requests over time Semaphore CI Build Status
Coverity Scan Status
Fuzzit Status
CII Best Practices
Travis CI Build Status
Language Grade: C/C++
CentOS CI Build Status
Build Status

Details

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 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 or join our IRC channel.

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