1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-08 11:27:32 +03:00
Commit Graph

2571 Commits

Author SHA1 Message Date
Lennart Poettering
db5eea5a79 readahead: disable collect/replay during system updates 2012-05-23 03:51:48 +02:00
Lennart Poettering
08231e5142 readahead: avoid running of readahead services if readahead is already done 2012-05-23 03:51:25 +02:00
Lennart Poettering
e905f48fdc readahead: avoid activating the journal by accident, log directly to kmsg 2012-05-23 03:50:53 +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
a690306153 log: make sure generators never log into the journal to avoid activation deadlocks
This makes all generators log to kmsg by default.
2012-05-22 22:00:37 +02:00
Lennart Poettering
399c5f9633 mount: drop unused function 2012-05-22 19:50:10 +02:00
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
5ad661b6b0 journal: log journal internal messages to kmsg 2012-05-22 19:26:51 +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
Kay Sievers
745e2fb79a main: only fall back to /bin/sh in case /sbin/init does not exist 2012-05-22 19:17:40 +02:00
Lennart Poettering
9b958eff3f logind: fix write out of user state file 2012-05-22 16:46:11 +02:00
Harald Hoyer
b46178e5c2 switch-root: do not use close old_root_fd after rm_rf_children()
rm_rf_children() has already closed the fd with closedir().
2012-05-22 16:15:09 +02:00
Lennart Poettering
7925c22a78 util: make sure to fstatat() at most once in rm_rf_children() 2012-05-22 16:14:34 +02:00
Sjoerd Simons
499fb2152f journal: crash when filesystem is low on space
When space is getting too low on a file system rotating the journal file
will fail after the rotation, as opening the new logfile will fail.

Recognize this when logging the error and don't try to dereference a
NULL JournalFile pointer.
2012-05-22 13:22:00 +02:00
Lennart Poettering
bf4df7c3b6 main: properly queue default.target after switched root
This also introduces rd.systemd.unit= to specify the unit to boot into
in the initrd.
2012-05-22 13:22:00 +02:00
Maxim A. Mikityanskiy
0b270320da keymap: support for Lenovo IdeaPad Z570 keyboard 2012-05-22 02:11:21 +02:00
Lennart Poettering
92a39ae198 mount: use the same fstab extension option syntax everywhere
The man page and the actual code differed, and this is now corrected
2012-05-22 02:00:53 +02:00
David Ward
2e9d6c1251 service: fix auto-restart handling in service_start()
Do not bypass the SERVICE_DEAD/SERVICE_FAILED state by manually issuing
a start job while an automatic restart is pending.
2012-05-22 01:57:21 +02:00
David Ward
f0c7b229e1 service: fix auto-restart handling in service_stop()
When service_stop() handles a service in the SERVICE_AUTO_RESTART state,
it calls service_set_state() to transition it to the SERVICE_DEAD state.
However if the service failed, it should transition it to SERVICE_FAILED
instead, which will trigger its OnFailure units. To achieve this, we now
call service_enter_dead() in place of service_set_state(), which will
transition the service to either SERVICE_DEAD or SERVICE_FAILED as is
appropriate.

Also, some misleading comments are adjusted: service_stop() is not only
called on a user request, but also during an automatic restart in order
to handle dependencies.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=45511
2012-05-22 01:55:52 +02:00
David Ward
feae8adb84 service: actually delay auto-restart if another job is pending
https://bugs.freedesktop.org/show_bug.cgi?id=45511
2012-05-22 01:53:30 +02:00
Lennart Poettering
30edf11616 cgtop: change default depth to 3
https://bugs.freedesktop.org/show_bug.cgi?id=49778
2012-05-22 01:48:40 +02:00
Guillermo Vidal
fec2aa2f9e Fixed handling of posix_fallocate() returned value
According to the man pages of posix_fallocate, it returns zero on
success or an error number on failure; however,  errno is not set
on failure. If the kernel or a library other than glibc does not
support the function for example, EOPNOTSUPP will be returned and
the error will not be handled properly with original code.
2012-05-22 01:45:11 +02:00
Shawn Landden
927735238d systemd-analyze: switch to python getopt for argument parsing
this uses gnu style getopt, so you can put the opts at the end: (e.g.)
systemd-analyze blame --user

v4
2012-05-22 01:34:19 +02:00
Frederic Crozat
c93ff2e913 main: allow system wide limits for services 2012-05-21 21:13:27 +02:00
Michal Schmidt
401cc72da8 journald: one more SYSLOG_IDENTIFIER length fix 2012-05-21 20:21:49 +02:00
Michal Schmidt
fca1b90a0d journald: fix length of "SYSLOG_IDENTIFIER="
Fixes weird messages like:
May 20 22:23:30 jik2 TIFIER=systemd-logind[795]: New session 46 of user gdm.

https://bugzilla.redhat.com/show_bug.cgi?id=823498
2012-05-21 20:03:26 +02:00
Lennart Poettering
8f33b5b8b3 util: rework in_initrd() logic
Checking the device major/minor is not a good idea. Let's replace this
with an explicit flag file, which we model after /etc/os-release and
call /etc/initrd-release.
2012-05-21 20:00:58 +02:00
Lennart Poettering
2660882b52 main: rename a few fix to follow general naming style 2012-05-21 19:48:04 +02:00
Lennart Poettering
416693175b switch-root: move switch_root() call into its own .c file 2012-05-21 19:33:39 +02:00
Harald Hoyer
97a66e9470 main: do_switch_root() do not recursively remove across device boundaries 2012-05-21 18:53:02 +02:00
Harald Hoyer
597f43c784 util: rm_rf_children() add root_dev parameter
if root_dev is set, remove subdirectories only, if the device is the
same as the root_dev. This prevents to remove files across device
boundaries.
2012-05-21 18:52:49 +02:00
Harald Hoyer
d966a7b363 delta/delta.c: initialize bottom for fail state 2012-05-21 18:51:44 +02:00
Harald Hoyer
c3ba62509e core/main.c: handle the initrd timestamp differently, if in the initrd
If systemd is in the initrd/initramfs, set the initrd timestamp and do
not try to read it from the RD_TIMESTAMP environment variable.
2012-05-21 18:51:05 +02:00
Harald Hoyer
e148ac5a6c core/main.c: do_switch_root(): do not remove the old root if not in initrd
Only recursively remove the old root, if we have been in an
initrd/initramfs.
2012-05-21 18:50:29 +02:00
Harald Hoyer
d03bc1b814 core/main.c: add "--switchedroot" parameter
If systemd serializes from a switch_root, it adds "--switchedroot" to
the systemd in the real root.

If "--switchedroot" is found, then we do not skip all the stuff, which
is skipped for normal rexecs.
2012-05-21 18:50:06 +02:00
Harald Hoyer
f38ed06060 manager: only serialize the timestamps for the initramfs if in_initrd() 2012-05-21 18:49:31 +02:00
Harald Hoyer
9be346c94e util.c: add in_initrd()
in_initrd() checks, if the stat() for the device for "/" is 1, which it
is for the initramfs.
2012-05-21 18:47:39 +02:00
Harald Hoyer
f67cc036ba main: corrected do_switch_root()
do_switch_root now mount moves "/dev", "/proc", "/sys", "/run" and
removes the old root recursively.
2012-05-21 18:45:10 +02:00
Nis Martensen
386da8589b delta: fix spelling of overridden 2012-05-21 18:31:43 +02:00
Frederic Crozat
4d768ced49 util: fix typo in newdup 2012-05-21 18:18:49 +02:00
Auke Kok
940c521034 sd-pam: Drop uid so parent signal arrives at child.
The PAM helper thread needs to capture the death signal from the
parent, but is prohibited from doing so since when the child dies
as normal user, the kernel won't allow it to send a TERM to the
PAM helper thread which is running as root.

This causes the PAM threads to never exit, accumulating after
user sessions exit.

There is however really no need to keep the PAM threads running as
root, so, we can just setresuid() to the same user as defined in the
unit file for the parent thread (User=). This makes the TERM signal
arrive as normal. In case setresuid() fails, we ignore the error, so
we at least fall back to the current behaviour.
2012-05-21 17:57:48 +02:00
Daniel Mack
89834a7c1c journalctl: fix built-in usage output
This brings journalctl's built-in usage output in sync with the man page.
There are no commands to pass, and the help screen should not confuse
users.
2012-05-21 17:30:11 +02:00
Matthew Monaco
2a2aab602e cryptsetup: support discards (TRIM) 2012-05-21 17:28:06 +02:00
Lennart Poettering
b8f8323268 main: try a bit harder to find an init process to execute after reexec/switch-root 2012-05-21 17:26:19 +02:00
Lennart Poettering
3614084261 service: make the fsck pass no configurable 2012-05-21 17:24:26 +02:00
Lennart Poettering
f7f21d33db cryptsetup: a few simplifications 2012-05-21 17:22:40 +02:00
Lennart Poettering
344de60901 hostname-setup: also consider (ńone) an unset hostname 2012-05-21 17:19:58 +02:00
Lennart Poettering
78d54bd42b unit: introduce RequiredBy= setting in [Install], to complement WantedBy= 2012-05-21 15:27:26 +02:00
Lennart Poettering
6ccf7562da login: minor typo fix 2012-05-21 15:22:28 +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
a223b325b4 systemctl: drop useless DBus calls from 'systemctl show foo.service'
systemctl called LoadUnit, GetUnit, GetAll in this order to get the properties.

It is useless to load units explicitly, because it won't ensure anything. The
unit may be freed immediately by the garbage collector.

It is unnecessary to call GetUnit, because systemctl can easily translate the
unit name to DBus path by itself.

GetAll will load the unit if necessary.
2012-05-21 12:59:00 +02:00
Michal Schmidt
80fbf05e75 dbus-unit: always load the unit before handling a message for it
We need to be able to show the properties even of inactive units.
systemctl loads the unit before getting its properties, but this is racy
as the garbage collector may kick in right after the loading.

Fix it by always loading the unit before handling a message for it.

https://bugzilla.redhat.com/show_bug.cgi?id=814966#c6
2012-05-21 12:54:34 +02:00
Lennart Poettering
c0ef53aa5b delta: drop PHP'ism 2012-05-21 02:02:40 +02:00
Lennart Poettering
8e812a2301 delta: don't highlight unchanged files 2012-05-21 02:02:31 +02:00
Lennart Poettering
866062b152 delta: introduce arg_flags field, to follow our usual scheme 2012-05-21 02:01:52 +02:00
Lennart Poettering
c8021373fb delta: use same nomenclature for equivalent and redirected everywhere 2012-05-16 18:57:57 +02:00
Lennart Poettering
4c4e643161 delta: enums are much cooler than defines 2012-05-16 18:53:46 +02:00
Gergely Nagy
807f464522 delta: Support filtering what type of deltas to show
Not everyone is interested in every kind of deltas (and some might
even be interested knowing which files do not have overrides), so this
here is an implementation of a --type=LIST... option for
systemd-delta, that makes it possible to filter what subset of deltas
we want.

The available modifiers are masked, equivalent, redirected, overriden,
and unchanged - they should be self explanatory, and the man page
explains them in a little more detail anyway.

As a side effect, in case of overriden files, the diff output was made
optional.

By default, everything is shown (with a diff, if appropriate) except
for completely unchanged files.

Signed-off-by: Gergely Nagy <algernon@balabit.hu>
2012-05-16 18:51:26 +02:00
Lennart Poettering
3ea6e73287 delta: add preset dirs 2012-05-16 03:40:42 +02:00
Lennart Poettering
7e8d5761ec delta: add missing files 2012-05-16 03:36:42 +02:00
Lennart Poettering
ee83acc49b switch-root: check for absolute paths 2012-05-16 03:24:50 +02:00
Kay Sievers
c195956988 udev: update docs, NEWS 2012-05-15 23:44:28 +02:00
Kay Sievers
20bbd54f60 udev: libudev - bump soname, remove deprecated functions, introduce symbol versions 2012-05-15 23:06:26 +02:00
Lennart Poettering
03ad1136ba tmpfiles: if we are supposed to write a string to a file, it's OK if we can't write the trailing newline 2012-05-15 14:35:51 +02:00
Michal Schmidt
ba49b4a1a2 install: fix inverted meaning of '--force' in systemctl enable 2012-05-15 08:13:29 +02:00
Andreas Schwab
990478a0ef missing: Fix broken syscall(__NR_fanotify_mark... on ppc32
The same situation as on o32 mips.
2012-05-14 22:57:07 +02:00
Lennart Poettering
ee1f44bd9a sd-login: update header docs a bit 2012-05-14 22:41:30 +02:00
Lennart Poettering
c1d70f7ca5 namespace: make PrivateTmp= apply to both /tmp and /var/tmp 2012-05-14 22:41:30 +02:00
Lennart Poettering
957eb8cab2 systemctl: add switch-root verb 2012-05-14 22:41:30 +02:00
Lennart Poettering
50913bc0c8 core: add extra safety check before switching root 2012-05-14 22:41:30 +02:00
Michal Schmidt
7cf82e0bb1 job: info message if JOB_VERIFY_ACTIVE detects an inactive unit 2012-05-14 14:29:54 +02:00
Michal Schmidt
1f136e7acf job: report the status of first half of JOB_RESTART the same as JOB_STOP 2012-05-14 14:29:54 +02:00
Michal Schmidt
c69182961b unit: unit type dependent status messages
Instead of generic "Starting..." and "Started" messages for all unit use
type-dependent messages. For example, mounts will announce "Mounting..."
and "Mounted".

Add status messages to units of types that used to be entirely silent
(automounts, sockets, targets, devices). For unit types whose jobs are
instantaneous, report only the job completion, not the starting event.
Socket units with non-instantaneous jobs are rare (Exec*= is not used
often in socket units), so I chose not to print the starting messages
for them either.

This will hopefully give people better understanding of the boot.
2012-05-14 14:29:53 +02:00
Michal Schmidt
9ab7a8d2a3 unit: print the color status marks on the left
The alignment of the "[  OK  ]" and "[FAILED]" status marks to the right
side of the terminal makes it difficult to link them with the messages
on the left if your console is wide.

I considered the options:
 1. Align them to the 80th column regardless of the console width.
    Disadvantage - either:
    - truncating messages needlessly, not using available space; or
    - If the message is long, write the mark over it. => ugly
 2. Write them to the 80th column for short messages,
    and further to the right for longer ones.
    Disadvantage:
    - jagged look
 3. Write the marks on the left, before the message.
    Disadvantage:
    - Breaks tradition from RHL.
    Advantages:
    + slightly simpler code
    + Will annoy holy-traditionalists.

I chose option 3.
BTW, Debian now uses similar marks on the left with its makefile-style
boot.

Special values of the "status" argument to status_vprintf are:
  NULL - no status mark, no message indentation
  ""   - no status mark, message indented as if the mark was there
2012-05-14 14:29:53 +02:00
Michal Schmidt
5f23d5b149 job: change red [ABORT] status to yellow [DEPEND]
The red "[ABORT]" for a dependency failure is too scary.
It suggests a crash. And it suggests a problem with the unit itself.
Change it to a yellow "[DEPEND]" message. The color communicates the
level of seriousness better.
2012-05-14 14:29:53 +02:00
Michal Schmidt
66aa6f7fbb job: only jobs on the runqueue can be run 2012-05-14 14:29:53 +02:00
Martin Pitt
0e5ba4e782 keymap: Add Mio N890
https://launchpad.net/bugs/998621
2012-05-14 13:06:48 +02:00
Kay Sievers
9e055fb8fc udev: path_id - cciss - set "we have a bus" flag 2012-05-10 21:35:54 +02:00
Hannes Reinecke
68acb21d79 udev: path_id - add cciss support 2012-05-10 14:03:49 +02:00
Michal Schmidt
1ebf0cb73d dbus-manager: fix tainted string
The pointer to the end of the string was not advanced after adding
the "cgroups-missing" taint. If "local-hwclock" was detected too,
it would overwrite the previous string.

With 'e' always pointing to the end of the string, removing the last
delimiter is easier.
2012-05-09 21:42:56 +02:00
Michal Schmidt
b809bd0940 main: fix uninitialized variable 2012-05-09 11:20:35 +02:00
Michal Schmidt
e564a98237 main: fix assertion failure due to use of ELEMENTSOF on a non-array 2012-05-09 11:13:26 +02:00
Lennart Poettering
d4d046e3fd util: a few updates for rm_rf() 2012-05-09 01:25:52 +02:00
Lennart Poettering
664f88a7e6 manager: introduce SwitchRoot bus call for initrd/main transition 2012-05-09 01:24:50 +02:00
Lennart Poettering
14753f3419 path-util: there is no function path_parent() 2012-05-08 23:37:25 +02:00
Lennart Poettering
a5d87bf0ea main: simplify+unify logic for parsing runtime booleans 2012-05-08 23:36:55 +02:00
Lennart Poettering
d889a2069a logind: implement suspend/hibernate calls with inhibition logic 2012-05-08 19:02:25 +02:00
Lennart Poettering
6edd7d0a09 sleep: implement suspend/hibernate as first class targets 2012-05-08 13:54:23 +02:00
Lennart Poettering
4943c1c94b logind: use "sleep" as generic term for "suspend", "hibernate", and later on "hybrid suspend" 2012-05-08 13:54:23 +02:00
Lennart Poettering
dd5f0a96f7 logind: fix test-inhibit 2012-05-08 13:54:23 +02:00
Kay Sievers
9eb977db5b util: split-out path-util.[ch] 2012-05-08 02:33:10 +02:00
Kay Sievers
bbc98d3256 util: split-out hwclock.[ch] 2012-05-08 01:57:17 +02:00
Frederic Crozat
b80efeb9ae logind: fix memory leak 2012-05-07 22:57:50 +02:00
Kay Sievers
2c21044f05 util: split-out conf-file.[ch] 2012-05-07 19:01:24 +02:00
Kay Sievers
7fdd367e6d udev: path_id - skip PCI-only-parents for block devices 2012-05-07 18:47:58 +02:00
Kay Sievers
775f8b3c74 udev: use conf_files_list() to search rules files 2012-05-07 13:21:05 +02:00
Kay Sievers
0a1a17aa2d conf_files_list(): split out conf_files_list_strv() 2012-05-07 13:20:29 +02:00
Kay Sievers
cd9556cc84 conf_files_list(): files-add() - do not canonicalize file names
File names in /etc, /run, /usr/lib are sorted/overridden by basename.
Sorting things like "/dev/null" with the basename "null" in the hash
of config files breaks the ordering and the overriding logic.
2012-05-07 13:15:25 +02:00