1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 16:59:03 +03:00
Commit Graph

170 Commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
0a9f8ed00c unit: Move UnitType definitions from core/unit.c to shared/unit-name.c
This makes it possible to use them from systemctl without linking
against the core. A string->enum lookup table is added.
2012-07-10 16:48:08 +02:00
Auke Kok
8401e9f91d MeeGo: Remove build support for MeeGo distribution.
The MeeGo distribution is still a supported distribution, but
will probably not see an updated version of systemd anymore.

Most of the development is focussing on Tizen now, and the
generic support for building --with-distro=other is more than
adequate enough.

This patch removes the support as a custom configuration build
target in systemd. People who are still building this for
the MeeGo distribution should build as "other" distro.
2012-07-09 16:37:46 +02:00
Lennart Poettering
451b34cc1d service: flush the start counter in "systemctl reset-failed" 2012-07-04 00:23:42 +02:00
Lennart Poettering
c9bc076461 mount-setup: don't complain if we try to fix the label of a dir beneath a mount but can't due to EROFS 2012-07-03 16:25:50 +02:00
Lennart Poettering
9946996cda load-fragment: a few modernizations 2012-07-03 16:10:04 +02:00
Lennart Poettering
26a1efdf61 core: mention if we are run from an initial RAM disk 2012-07-02 11:38:32 +02:00
Lennart Poettering
29252e9e5b manager: turn notify socket into abstract namespace socket again
sd_notify() should work for daemons that chroot() as part of their
initilization, hence it's a good idea to use an abstract namespace
socket which is not affected by chroot.
2012-07-02 10:43:57 +02:00
Lennart Poettering
33c5fae939 manager: serialize/deserialize job counters across reexec/reload 2012-06-29 19:47:38 +02:00
Lennart Poettering
b4efdf9720 remount-fs: also remount /usr according to fstab 2012-06-29 16:14:43 +02:00
Michal Schmidt
8eba616fc0 mount: load only if we there's mountinfo or fragment
Having information from /proc/self/mountinfo is sufficient to consider a
mount unit loaded.

When there's no mountinfo, the loading of the fragment for the mount
unit is not optional. No extra dependency links must be added when the
loading fails.

https://bugzilla.redhat.com/show_bug.cgi?id=835848
2012-06-29 02:10:41 +02:00
Michal Schmidt
1a4ac87500 mount: split adding of extras from mount_load() 2012-06-29 02:04:30 +02:00
Lennart Poettering
c20f5ac765 main: print detected virtualiaztion at boot 2012-06-28 14:05:17 +02:00
Michal Schmidt
e62abb6268 modules-load: use correct va_list logging function 2012-06-28 00:52:14 +02:00
Lennart Poettering
af6da548aa core: make systemd.confirm_spawn=1 actually work
This adds a timeout if the TTY cannot be acquired and makes sure we
always output the question to the console, never to the TTY of the
respective service.
2012-06-26 12:21:43 +02:00
Michal Schmidt
0c7f15b3a9 service: pass via FAILED/DEAD before going to AUTO_RESTART
With misconfigured mysql, which uses Restart=always, the following two
messages would loop indefinitely and the "systemctl start" would never
finish:
  Job pending for unit, delaying automatic restart.
  mysqld.service holdoff time over, scheduling restart.

In service_enter_dead() always set the state to SERVICE_FAILED/DEAD first
before setting SERVICE_AUTO_RESTART. This is to allow running jobs to
complete. OnFailure will be also triggered at this point, so there's no
need to do it again from service_stop() (where it was added in commit
f0c7b229).

Note that OnFailure units should better trigger only after giving up
auto-restarting, but that's for another patch to solve.

https://bugzilla.redhat.com/show_bug.cgi?id=832039
2012-06-26 11:42:52 +02:00
Michal Schmidt
e201a0384d service: fix incorrect argument
The last argument to service_enter_dead() is bool allow_restart, not
a service result.
2012-06-26 11:32:30 +02:00
Lennart Poettering
2aac569ab4 bus: drop HaveWatchdog option
Clients should always watch /dev/watchdog directly, instead of going
indirect. Let's keep our stacks small.
2012-06-26 00:03:43 +02:00
Lennart Poettering
35eb6b124e cryptsetup: fix escaping when generating cryptsetup units 2012-06-25 20:16:15 +02:00
Lennart Poettering
93a1d735ac units: rename fsck@.service to systemd-fsck@.service
The rule is that units that encapsulate our own code are prefixed with
"systemd-". Since the fsck units invoke our own code, hence add the
missing prefix. Since a long long time the fsck units didn't invoke the
naked fsck binaries anymore, and it is unlikely that this well ever
change. On the opposite: the code in systemd-fsck will probably get more
complex over time to handle fsck progress to plymouth forwarding.

Same for quotacheck (but not quotaon!)
2012-06-25 14:28:50 +02:00
Lennart Poettering
8ff290af3b unit: drop the Names= option
Names= is a source of errors, simply because alias names specified like
this only become relevant after a unit has been loaded but cannot be
used to load a unit.

Let's get rid of the confusion and drop this field. To establish alias
names peope should use symlinks, which have the the benefit of being
useful as key to load a unit, even though they are not taken into
account if unit names are listed but they haven't been explicitly
referenced before.
2012-06-22 16:24:57 +02:00
Lennart Poettering
a3a3e5b6ae dbus: don't expose SysVInitPath and SysVRcndPath on the bus
People should use systemd.pc if anything at all to determine these
directories, and people should not assume that the bus fields are part
of the supported API, so let's just drop this.
2012-06-22 16:18:51 +02:00
Lennart Poettering
d081dffbd3 core: remove sysv_console option
This option never made much sense. It was originally intended to make
sure that the usual startup output of sysv scripts goes to the terminal.
However, since SysV scripts started from a terminal would not output to
that terminal, but rather /dev/console this effect was more often than
not actually taking place. Nowadays systemd has much nicer boot time
status output than SysV which makes the sysv output redundant. Finally,
all output of services goes to the journal anyway, and is not lost.

Hence, let's drop this option, and simplify things a bit.
2012-06-22 13:16:28 +02:00
Lennart Poettering
b0193f1c1f systemctl: automatically turn paths and unescaped unit names into proper unit names
This makes sure that

  systemctl status /home

is implicitly translated to:

  systemctl status /home.mount

Similar, /dev/foobar becomes dev-foobar.device.

Also, all characters that cannot be part of a unit name are implicitly
escaped.
2012-06-22 13:08:48 +02:00
Lennart Poettering
66a78c2b95 cryptsetup: allow configuration of LUKS disks via the kernel cmdline
This generalizes a bit of the functionality already available in dracut.
2012-06-22 10:11:06 +02:00
Lennart Poettering
c66e7bc7a1 man: document all kernel command line options we understand 2012-06-22 01:35:52 +02:00
Eelco Dolstra
62bca2c657 journal: set the _SYSTEMD_UNIT field for messages from terminated processes
As described in

  https://bugs.freedesktop.org/show_bug.cgi?id=50184

the journal currently doesn't set fields such as _SYSTEMD_UNIT
properly for messages coming from processes that have already
terminated.  This means among other things that "systemctl status" may
not show some of the output of services that wrote messages just
before they exited.

This patch fixes this by having processes that log to the journal
write their unit identifier to journald when the connection to
/run/systemd/journal/stdout is opened.  Journald stores the unit ID
and uses it to fill in _SYSTEMD_UNIT when it cannot be obtained
normally (i.e. from the cgroup).  To prevent impersonating another
unit, this information is only used when the caller is root.

This doesn't fix the general problem of getting metadata about
messages from terminated processes (which requires some kernel
support), but it allows "systemctl status" and similar queries to do
the Right Thing for units that log via stdout/stderr.
2012-06-22 00:14:08 +02:00
Lennart Poettering
590f18a27c rpm: include RPM macro definition for .spec snippets
Let's try to standardize a bit the RPM macros used for
installing/uninstalling services.

This only covers the non-SysV compat bits, since that tends to vary
widely between the various distros.

Usage:

Add %{?systemd_requires} to the header of the spec file. And then:

%post
%systemd_post foobar.service

%preun
%systemd_preun foobar.service

%postun
%systemd_postun foobar.service

And, instead of the latter, in case the service shall be restarted on updates:

%postun
%systemd_postun_restart foobar.service
2012-06-21 22:14:17 +02:00
Michal Sekletar
9722ef2565 systemd: return error when asked to stop unknown unit
Command systemctl stop foo.service, will print error message, when
foo.service is unknown to systemd, i.e. there is no unit file loaded for
this service.
https://bugzilla.redhat.com/show_bug.cgi?id=732874
2012-06-19 11:38:22 +02:00
Lukas Nykryn
98709151f3 service: timeout for oneshot services
Add possibility to specify timeout for oneshot services.

[ https://bugzilla.redhat.com/show_bug.cgi?id=761656
  Added minor fixups. -- michich ]
2012-06-15 16:04:06 +02:00
Michal Schmidt
48899192a7 unit-name: introduce unit_dbus_path_from_name()
Use the same function in core and in systemctl.
get_unit_path() in systemctl becomes unnecessary.
2012-06-13 18:42:02 +02:00
Kay Sievers
f96096dbbf silence gcc warning on 32 bit 2012-06-04 22:27:39 +02:00
Kay Sievers
8600c525cb remove support for deprecated /proc/self/oom_adj 2012-06-04 16:41:10 +02:00
Lennart Poettering
48ac500bb6 missing: define MS_STRICTATIME if not defined already 2012-06-01 21:25:29 +02:00
Lennart Poettering
213ba152fd journal: allow setting of a cutoff log level for disk storage, syslog, kmsg, console forwarding 2012-06-01 17:27:16 +02:00
Kay Sievers
d2e54fae5c mkdir: append _label to all mkdir() calls that explicitly set the selinux context 2012-05-31 12:40:20 +02:00
Lennart Poettering
aa0f64ac85 main: allow setting of timer slack for PID 1 2012-05-31 04:36:08 +02:00
Lennart Poettering
d88a251b12 util: introduce a proper nsec_t and make use of it where appropriate 2012-05-31 04:27:03 +02:00
Daniel Drake
7c49259fc8 shutdown: Don't skip bind mounts on shutdown
This reverts commits d72238fcb3 and
f3accc08.

OLPC runs / as a bind-mount, so this must be remounted RO during
shutdown to avoid corruption.

As Lennert can't recall the exact reasons for making the shutdown
code skip bind mounts, revert to previous behaviour to solve the
issue for OLPC.

http://lists.freedesktop.org/archives/systemd-devel/2012-April/004957.html
2012-05-30 23:17:03 +02:00
Lennart Poettering
7c0987d812 dbus: better don't expose options we better shouldn't exposed
NotifySocket= is hardly useful, people should use $NOTIFY_SOCKET if
anything.

RunningAs= suggests people had a choice of running user mode as PID 1 or
vice versa, so remove this too.
2012-05-30 21:43:11 +02:00
Lennart Poettering
c485d3ba09 service: mark compat options as such
This moves FsckPassNo= and SysVStartPriority= into its own
"Compatibility Options" section in the man page to clarify that these
options are not useful for anything but establishing a limited amount of
compatibility.

Also stop exposing these options on the bus.
2012-05-30 21:42:07 +02:00
Lennart Poettering
939b8f14dc capabilities: when dropping capabilities system-wide also drop them from usermode helpers
This hooks things up with /proc/sys/kernel/usermodehelper/bset and
/proc/sys/kernel/usermodehelper/inheritable.
2012-05-29 23:35:17 +02:00
Lennart Poettering
b6bfc7bbee swap: avoid bad memory access 2012-05-24 17:33:50 +02:00
Lennart Poettering
ec8927ca59 main: add configuration option to alter capability bounding set for PID 1
This also ensures that caps dropped from the bounding set are also
dropped from the inheritable set, to be extra-secure. Usually that should
change very little though as the inheritable set is empty for all our uses
anyway.
2012-05-24 04:00:56 +02:00
Lennart Poettering
e056b01d8a service: for Type=idle units consider START_PRE, START, START_POST all as ACTIVE
We want to avoid a deadlock when a service has ExecStartPre= programs
that wait for the job queue to run empty because of Type=idle, but which
themselves keep the queue non-empty because START_PRE was considered
ACTIVATING and hence the job not complete. With this patch we alter the
state translation table so that it is impossible ever to wait for
Type=idle unit, hence removing the deadlock.
2012-05-24 02:22:35 +02:00
Lennart Poettering
66b1a24790 man: properly document FsckPassNo= for mount units 2012-05-23 04:11:29 +02:00
Lennart Poettering
07719a21b6 manager: rework generator logic
Previously generated units were always placed at the end of the search
path. With this change there will be three unit dirs instead of one, to
place generated entries at the beginning, in the middle and at the end
of the search path:

beginning: for units that need to override all configuration, regardless
of user or vendor. Example use: system-update-generator uses this to
temporarily redirect default.target.

middle: for units that need to override vendor configuration, but not
vendor configuration. Example use: /etc/fstab should override vendor
supplied configuration (think /tmp), but should not override native user
configuration.

end: does not override anything but is available as well. Possible usage
might be to convert D-Bus bus service files to native units but allowing
vendor supplied native units to win.
2012-05-23 03:43:29 +02:00
Lennart Poettering
1b64d026af units: remove service sysv_path variable and replace it by generic unit_path
UnitPath= is also writable via native units and may be used by generators
to clarify from which file a unit is generated. This patch also hooks up
the cryptsetup and fstab generators to set UnitPath= accordingly.
2012-05-22 23:08:24 +02:00
Lennart Poettering
399c5f9633 mount: drop unused function 2012-05-22 19:50:10 +02:00
Lennart Poettering
e6a2674500 execute: use a much lower idle timeout that default time
The idle timeout after all is for cosmetics only, hence avoid any
substantial delays just for it.
2012-05-22 19:26:15 +02:00
Lennart Poettering
6b1dc2bd3c mount: replace PID1 internal fstab parser with generator
Bit by bit we should remove non-unit parsing from PID 1 and move into
generators, to clean up our code base a bit and clearly separate
parsers.
2012-05-22 19:25:17 +02:00