Commit Graph

458 Commits

Author SHA1 Message Date
Lennart Poettering
d360705f0f system-update: add system update generator
http://freedesktop.org/wiki/Software/systemd/SystemUpdates
2012-05-22 19:48:51 +02:00
Lennart Poettering
49e7f02774 rescue: don't pull in sockets
In rescue mode let's not establish all sockets, so that we don't end up
starting a lot of additional services automatically.

Instead of pulling in basic.target we now only pull in sysinit.target
which pulls in local-fs.target and swap.target. That way rescue mode has
all the really basic setup around, but normal services are not started
and not autostarted either.
2012-05-22 16:12:25 +02:00
Lennart Poettering
49dbfa7b2b units: introduce new Documentation= field and make use of it everywhere
This should help making the boot process a bit easier to explore and
understand for the administrator. The simple idea is that "systemctl
status" now shows a link to documentation alongside the other status and
decriptionary information of a service.

This patch adds the necessary fields to all our shipped units if we have
proper documentation for them.
2012-05-21 15:14:51 +02:00
Michal Schmidt
7c99edf85b units: do not quit plymouth too early 2012-05-14 14:29:53 +02:00
Lennart Poettering
6edd7d0a09 sleep: implement suspend/hibernate as first class targets 2012-05-08 13:54:23 +02:00
Lennart Poettering
4019a16d5b units: use OOMScoreAdjust= in the unit files to set OOM score adjust 2012-05-04 00:15:21 +02:00
Lennart Poettering
c374339916 units: explicit Type=dbus is now redundant 2012-05-03 14:48:35 +02:00
Lennart Poettering
86fff24864 units: make sure /var is writable before initializing random seed 2012-04-30 10:56:46 +02:00
Lennart Poettering
7c8fa05c4d unit: add new dependency type RequiresMountsFor=
RequiresMountsFor= is a shortcut for adding requires and after
dependencies to all mount units neeed for the specified paths.

This solves a couple of issues regarding dep loop cycles for encrypted
swap.
2012-04-30 10:52:07 +02:00
Lennart Poettering
e2875c4693 timedated: introduce systemd-timedated-ntp.target which is controlled by timedated's NTP setting
We shouldn't hardcode the name of the NTP implementation in the
timedated mechanism, especially since Fedora currently switched from NTP
to chrony.

This patch introduces a new target that is enabled/disabled instead of
the actual NTP implementation. The various NTP implementations should
then add .wants/ symlinks to their services and BindTo back to the
target, so that their implementations are started/stopped jointly with
the target.

https://bugzilla.redhat.com/show_bug.cgi?id=815748
2012-04-25 16:49:02 +02:00
Lennart Poettering
2b93b027d3 remount: consolidate remount-api-vfs and remount-rootfs into one
This has the advantage of removing a confusing warning by mount if the
root directory is not listed in fstab.
2012-04-24 16:42:42 +02:00
Lennart Poettering
f2b6878955 service: introduce Type=idle and use it for gettys
Type=idle is much like Type=simple, however between the fork() and the
exec() in the child we wait until PID 1 informs us that no jobs are
left.

This is mostly a cosmetic fix to make gettys appear only after all boot
output is finished and complete.

Note that this does not impact the normal job logic as we do not delay
the completion of any jobs. We just delay the invocation of the actual
binary, and only for services that otherwise would be of Type=simple.
2012-04-24 14:42:24 +02:00
Lennart Poettering
3b2d5b02ae readahead: rather than checking for virtualization in the C code, use ConditionVirtualization= in the unit 2012-04-24 13:14:40 +02:00
Lennart Poettering
e3f7277c6e units: remount file systems only if /etc/fstab actually exists 2012-04-22 15:35:35 +02:00
Lennart Poettering
5cd6eef69b units: don't try to load kernel modules if CAP_SYS_MODULE is missing 2012-04-22 14:11:32 +02:00
Lennart Poettering
2c8049f3d3 units: skip root fsck if the root directory is writable 2012-04-22 14:11:32 +02:00
Lennart Poettering
acda6a054f default to v102 everywhere, instead of vt100, to synchronize with agetty 2012-04-22 02:45:39 +02:00
Lennart Poettering
337eebb936 container: spawn a getty instead of a sulogin in a container 2012-04-22 02:41:18 +02:00
Kay Sievers
180bd81280 udev: units - reference systemd-* units 2012-04-18 16:29:43 +02:00
Kay Sievers
f13b388f97 udev: install udevd as /usr/lib/systemd/systemd-udevd 2012-04-17 00:18:30 +02:00
Lennart Poettering
186b97d99f units: drop audit reference from description of utmp units since that is build-time optional 2012-04-13 19:46:51 +02:00
Lennart Poettering
fb316903b8 units: add CAP_MKNOD condition to the other two udev services too 2012-04-13 19:46:51 +02:00
Lennart Poettering
41807efb15 units: do binfmt magic only when /proc/sys is writable 2012-04-13 18:52:53 +02:00
Lennart Poettering
8ef58b3efc getty: skip VC gettys if the VC subsystem is not available 2012-04-12 17:31:26 +02:00
Lennart Poettering
88e995fd72 getty: VC devices are always available, we don't need to wait until they show up 2012-04-12 17:29:42 +02:00
Lennart Poettering
1d7f3f5cc8 units: start vconsole-setup only if there's actually a virtual console device 2012-04-12 12:58:19 +02:00
Lennart Poettering
f2a46f8da5 units: run sysctl stuff only when /proc/sys is actually writable, to quieten container boots a little 2012-04-12 12:58:19 +02:00
Lennart Poettering
5430f7f2bc relicense to LGPLv2.1 (with exceptions)
We finally got the OK from all contributors with non-trivial commits to
relicense systemd from GPL2+ to LGPL2.1+.

Some udev bits continue to be GPL2+ for now, but we are looking into
relicensing them too, to allow free copy/paste of all code within
systemd.

The bits that used to be MIT continue to be MIT.

The big benefit of the relicensing is that closed source code may now
link against libsystemd-login.so and friends.
2012-04-12 00:24:39 +02:00
Lennart Poettering
4771148bb9 units: exclude gettys from isolate requests
gettys are nowadays mostly autospawned and hence usually subject to
being shut down on isolate requests, since they are no dependency of any
other unit. This is a bad idea if the user isolates between
multi-user.graphical and graphical.target, hence exclude them from the
isolation.

This has the effect that gettys no longer cleaned up when
emergency.target is isolated, which might actualy be considered a
feature, even though it is a change from previous behaviour...

Note that the one getty that really matters (the one on tty1) is still
removed when isolating to emergency.target since it conflicts with
emergency.service.
2012-04-11 22:37:48 +02:00
Kay Sievers
635f7d8ca7 enable proper access timestamps on all tmpfs mounts 2012-04-11 22:18:55 +02:00
Lennart Poettering
082694b75f units: introduce nss-user-lookup.target
This separates user/group NSS lookups from host/network NSS lookups.

By default order all network mounts after host/network NSS lookups now,
and logind execution after user/group NSS lookups.
2012-04-11 00:11:18 +02:00
Lennart Poettering
704179d839 units: direct users to the journal for logs when entering rescue mode 2012-04-04 13:52:02 +02:00
Dave Reisner
9cf2578683 units/: use @SYSTEMCTL@ instead of hardcoded paths
Especially in the case of --enable-split-usr, several units will point
to the wrong location for systemctl. Use @SYSTEMCTL@ which will always
contain the proper path.
2012-04-04 06:46:35 +02:00
Kay Sievers
3672af61aa udev: fix path in udev.service 2012-04-04 06:21:23 +02:00
Kay Sievers
3e2147858f move imported udev into place 2012-04-04 05:05:07 +02:00
Kay Sievers
623ac9d2fc units: mount /tmp as tmpfs
The default setups should be a stateless as possible. /tmp as tmpfs is
the intended default for general purpose systems.

Small temporary files should not be stored on disk; lager files, or
files which should potentially survive a reboot, belong into /var/tmp.

Also catch up with some good old UNIX history.

More details are here:
  https://fedoraproject.org/wiki/Features/tmp-on-tmpfs
2012-03-27 17:30:41 +02:00
Lennart Poettering
55d029addf units: get rid of var-run.mount and var-lock.mount
Since a number of distribitions don't need this compat glue anymore drop
it from systemd upstream. Distributions which still haven't converted
to /run can steal these unit files from the git history if they need to.
2012-03-27 17:11:00 +02:00
Lennart Poettering
231931ffba units: don't mount tmpfs on /media anymore
udisks2 doesn't use /media anymore, instead mounts removable media in a
user-private directory beneath /run. /media is hence mostly obsolete and
hence it makes little sense to continue to mount a tmpfs to it.

Distributions should consider dropping the mount point entirely since
nothing uses it anymore.
2012-03-27 17:04:22 +02:00
Roberto Sassu
160481f68d systemd: mount the securityfs filesystem at early stage
This is an S/MIME signed message

The mount of the securityfs filesystem is now performed in the main systemd
executable as it is used by IMA to provide the interface for loading custom
policies. The unit file 'units/sys-kernel-security.mount' has been removed
because it is not longer necessary.

Signed-off-by: Roberto Sassu <roberto.sassu@polito.it>
Acked-by: Gianluca Ramunno <ramunno@polito.it>
2012-03-22 00:20:48 +01:00
Lennart Poettering
54ecda32c6 socket: add option for SO_PASSEC
https://bugzilla.redhat.com/show_bug.cgi?id=798760

(Note that this work is not complete yet, as the kernel seems to send us
useless data with SCM_SECURITY enabled)
2012-03-13 00:00:27 +01:00
Lennart Poettering
eb91400c68 units: reword rescue/emergency mode message to fit in 80chars 2012-02-15 20:06:14 +01:00
Lennart Poettering
cabca20b1a journal: add CAP_SETUID and CAP_SETGID to capabilities for journald, so that we can fake SCM_CREDENTIALS 2012-02-10 15:46:24 +01:00
Lennart Poettering
353e12c2f4 service: ignore SIGPIPE by default 2012-02-09 03:18:04 +01:00
Lennart Poettering
ccd07a083e journal: limit caps we pass to journald 2012-02-09 02:06:13 +01:00
Kay Sievers
e0d25329b2 move /usr/bin/systemd to /usr/lib/systemd/systemd 2012-02-08 00:08:10 +01:00
Mike Kazantsev
9c07474c6f logind: add sys_tty_config capability, to let it use VT_ACTIVATE ioctl on "activate" action 2012-01-27 21:14:01 +01:00
Lennart Poettering
bb99a35a87 log: increase socket buffers for logging by default 2012-01-27 18:57:37 +01:00
Lennart Poettering
4cfa2c999d core: switch all log targets to go directly to the journal, instead via syslog 2012-01-12 05:09:06 +01:00
Lennart Poettering
ead51eb4ed units: make sure syslog socket goes away early during shutdown 2012-01-12 04:34:50 +01:00
Lennart Poettering
6342c8eaaf units: remove left-over unit file 2012-01-06 03:20:22 +01:00
Lennart Poettering
ba1d559635 journald: start the journal after the syslog socket, so that the syslog socket queues syslog messages from early boot on 2012-01-06 03:11:56 +01:00
Lennart Poettering
4c0bebc335 kmsg-syslogd: remove kmsg-syslogd, since it's entirely obsoleted and replaced by journald 2012-01-06 03:11:17 +01:00
Lennart Poettering
db5973704b stdout: remove stdout-syslog-bridge since it is now obsoleted by journald 2012-01-06 02:48:38 +01:00
Lennart Poettering
259d2e7620 journal: move sockets into their own subdir 2012-01-05 20:24:16 +01:00
Lennart Poettering
271b032a05 socket: rename the PassCred= option to PassCredentials=, since we don't want to needlessly abbreviate options unless they are very well established 2011-12-31 01:07:49 +01:00
Lennart Poettering
dc1ecd78e9 Merge branch 'journal' 2011-12-31 00:59:37 +01:00
Lennart Poettering
8b18eb674c journald: forward all syslog messages to syslogd 2011-12-30 19:05:43 +01:00
Lennart Poettering
4b2d99d9f4 journal: add unit files and shared library glue 2011-12-30 17:50:37 +01:00
Michal Schmidt
91b684c730 rc-local: order after network.target
As suggested by Bill Nottingham: rc.local is often used for frobbing the
network.

https://bugzilla.redhat.com/show_bug.cgi?id=754789
2011-12-02 11:32:52 +01:00
Michal Schmidt
e951701a4d rc-local: no need to check if the script is executable
rc-local.service is pulled in by a generator only if the script is
executable. No need to check again.
2011-12-02 11:32:04 +01:00
Michal Schmidt
1567308317 add a generator to pull rc-local.service in
rc-local.service acts as an ordering barrier even if its condition is
false, because conditions are evaluated when the service is about to be
started.

To avoid the ordering barrier in a legacy-free system, add a generator
to pull rc-local.service into the transaction only if the script is
executable.

If/when we rewrite SysV compatibility into a generator, this one can become
a part of it.
2011-12-02 11:29:48 +01:00
Michal Schmidt
1a2801529e syslog: use PassCred=yes for the /dev/log socket
Both kmsg-syslogd and the real syslog service want to receive
SCM_CREDENTIALS. With socket activation it is too late to set
SO_PASSCRED in the services.
2011-11-30 11:00:28 +01:00
Michal Schmidt
75d3fc60f8 shutdownd: use PassCred=yes in the socket unit
Since Linux 3.2 in order to receive SCM_CREDENTIALS it is not sufficient
to set SO_PASSCRED just before recvmsg(). The option has to be already
set when the sender sends the message.

With socket activation it is too late to set the option in the service.
It must be set on the socket right from the start.

See the kernel commit:
16e57262 af_unix: dont send SCM_CREDENTIALS by default

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=757628
2011-11-30 10:12:59 +01:00
Michal Schmidt
42c3673e63 units/suse: let rc-local.service log to syslog
Same change as the previous commit did for Fedora. fcrozat agreed.
2011-11-09 10:10:38 +01:00
Michal Schmidt
9d7286112d units/fedora: let rc-local.service log to syslog
rc-local.service should not be excluded from the default stdout logging.

Missing logs were noticed by Andrew McNabb in
 https://bugzilla.redhat.com/show_bug.cgi?id=750032#c3
2011-11-09 09:22:30 +01:00
Michal Schmidt
c99e42c1db units: drop unnecessary 'StandardOutput=syslog'
DefaultStandardOutput is syslog anyway. There's no reason to assume that
the administrator would want these units to be excluded when he configures
a different DefaultStandardOutput.
2011-11-09 08:48:25 +01:00
Dexter Morgan
6fdae8a6a4 Add Mageia support
This patch adds support for the Mageia Linux distribution:
 http://www.mageia.org/

Mageia is a fork of Mandriva although some divergence has already occured
and thus inclusion of these changes upstream allow us to (hopefully)
migrate more rapidly to the new standard approaches systemd offers.
Indeed, we already use the preferred mechanism of OS identification via
the /etc/os-release file rather than a distro specific variation.

This patch mostly mirrors the patch added previously for Mandriva
support. In addition to those original authors, this patch was mostly
written by Dexter Morgan with help from Colin Guthrie and Eugeni Dodonov.
2011-11-02 02:16:39 +01:00
Lennart Poettering
fc8f0b5c9c units: drop [Install] section from remote-fs-pre.target
remote-fs-pre.target is not a unit a user should ever explicitly enable.
Instead services which need to hook before network mounts should pull it
in.
2011-11-01 22:29:48 +01:00
Lennart Poettering
822b18599d units: forgot target units 2011-10-11 14:26:20 +02:00
Lennart Poettering
f84aea434f units: increase LimitNOFILE a bit
since we need one fd per session (for logind) and one fd per service
(for stdout-syslog-bridge) increase the default rlimit a bit.
2011-10-11 04:43:29 +02:00
Lennart Poettering
8266f984df units: remount root and API FS before all mount units are applied
In order to ensure that bind mounts copy the final mount settings to the
new bind mount make the root and API FS mount options are applied before
the other file systems are mounted.

https://bugzilla.redhat.com/show_bug.cgi?id=718464
2011-10-11 03:41:04 +02:00
Lennart Poettering
a966a504e8 readahead: opt out of bridge logging for readahead in order not to delay things unnecessarily 2011-09-23 17:42:54 +02:00
Michal Schmidt
0fe9972f3c units: fix rescue.service race with plymouth
It was possible for the "ExecStartPre=-/bin/plymouth quit" to race
with plymouth-start.service which is pulled in indirectly by
basic.target -> sysinit.target.

The race left plymouth running on the terminal, making it unusable for
rescue purposes.

https://bugzilla.redhat.com/show_bug.cgi?id=710487
2011-09-22 23:59:50 +02:00
Lennart Poettering
7ef5875d14 units: introduce unit file for FUSE fs
FUSE and configfs is very very similar, so handle both the same way.
2011-09-22 03:00:04 +02:00
Marko Saukko
d418f857f8 units: In MeeGo there was more than one ExecStart lines present that caused systemd to refuse the rescue.service 2011-09-21 21:38:46 +02:00
Lennart Poettering
4f38cd85f6 units: we don't need to check whether /sys/kernel/security is already mounted since we'll enumerate that fact anyway 2011-09-21 18:06:24 +02:00
Lennart Poettering
ac0a983ac6 units: drop automount unit for /dev/hugepages
Since hugetlbfs cannot be compiled as kernel module there's little point
in doing on-demand mounting via autofs for it.
2011-09-21 03:56:56 +02:00
Lennart Poettering
1f2c94a487 units: drop automount unit for /dev/mqueue
Since the mqueue support cannot be built as a module there's little
benefit in having an autofs mount point set up for this.
2011-09-21 03:56:56 +02:00
Lennart Poettering
77f81d8b30 units: drop automount unit for /sys/kernel/security
Since securityfs cannot be build as module there's little value in
having an on-demand autofs mount point for it.
2011-09-21 03:56:56 +02:00
Lennart Poettering
e124e7a4a1 units: drop automount unit for /sys/kernel/debug
Since debugfs cannot be compiled as module there's little benefit in
having it as autofs mount point.
2011-09-21 03:56:55 +02:00
Lennart Poettering
0286cc1551 units: drop /sys/kernel/config automount unit
The mount point directory /sys/kernel/config is only created after the
module is loaded, hence there's little value in having this an automount
unit: the runtime penalty for mounting an autofs here should be the same
as for a real mount.
2011-09-21 03:56:55 +02:00
Michal Schmidt
0d60602c3b condition: add ConditionPathIsSymbolicLink 2011-09-21 01:42:02 +02:00
Lennart Poettering
b1db68fa60 units: don't initialize automount point for securityfs if the initrd already mounted the directory 2011-09-21 00:50:41 +02:00
Michal Schmidt
cbe8269481 units: direct stdout/stderr of rescue shells to tty
With output of services going to syslog by default now, the rescue shell
units need to direct their output to tty explicitly.
Specify stderr too, just in case.
2011-09-20 12:15:48 +02:00
Bill Nottingham
d6bca18e28 units: Add support for automounting configfs, ala debugfs, etc. 2011-09-20 03:35:09 +02:00
Lennart Poettering
07bceef2a9 locale: support $LANGUAGE too
$LANGUAGE is a GNU extension that is probably worth supporting, since it
allows specifiying an order of languages.

https://bugs.freedesktop.org/show_bug.cgi?id=40510
2011-08-31 14:10:50 +02:00
Lennart Poettering
4b7b2efb69 man: don't recommend After=syslog.target anymore since we don't support non-socket-activatable syslogs anymore where that was ncessary 2011-08-31 01:35:43 +02:00
Lennart Poettering
346bce1f4c stdout-bridge: rename logger to stdout-syslog-bridge to make it more descriptive 2011-08-30 22:42:49 +02:00
Lennart Poettering
6b3fd98f7a untis: allow both console and plymouth ask password agents in boot transaction to allow dynamically disabled plymouth 2011-08-29 21:48:51 +02:00
Lennart Poettering
8e4fb44ab0 plymouth: don't enable ask-password agent of plymouth is disabled 2011-08-29 19:45:47 +02:00
Lennart Poettering
1d6702e8d3 umask: set umask of a number of sockets by default, even though we check creds on connections 2011-08-01 22:42:07 +02:00
Lennart Poettering
82e487c56d unit: introduce ConditionFileIsExecutable= and use it where we check for a binary we'll spawn 2011-07-12 04:25:02 +02:00
Frederic Crozat
a268a6a38f units: add units for boot.local/halt.local on SUSE distributions. 2011-07-12 00:15:35 +02:00
Lennart Poettering
26b8e979c8 units: enable dev-hugepages.automount and dev-mqueue.automount only when enabled in kernel 2011-07-02 01:00:00 +02:00
Lennart Poettering
bde7f90721 logind: temporarily hack right user bus address into unit file 2011-07-01 22:36:15 +02:00
Lennart Poettering
d42d27ead9 logind: add service for per-user shared systemd daemon 2011-06-30 02:18:01 +02:00
Lennart Poettering
d0a522eb31 logind: autospawn gettys when necessary 2011-06-28 00:26:10 +02:00
Bill Nottingham
1616acbba4 units: Use /etc/rc.d/rc.local as the path to rc.local in Fedora.
/etc/rc.local is a symlink.
2011-06-27 14:25:33 +02:00
Lennart Poettering
3084a7c453 logind: add more necessary caps to the service 2011-06-24 23:52:02 +02:00
Lennart Poettering
094062918c logind: fix set of capabilities 2011-06-24 22:55:51 +02:00