1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 09:56:51 +03:00
Commit Graph

27 Commits

Author SHA1 Message Date
Michael Olbrich
4b9397474f service: add StartLimitInterval/StartLimitBurst/StartLimitAction 2012-02-09 21:01:29 +01:00
Michael Olbrich
bb242b7b52 service: introduce WatchdogSec and hook up the watchdog with the existing failure logic 2012-02-08 17:10:38 +01:00
Lennart Poettering
f42806df7d service: replace "failure" boolean by enum, and export it
This should give admins more useful hints why a service failed.
2012-02-03 05:06:03 +01:00
Michael Olbrich
a6927d7ffc service: add watchdog timestamp
This patch adds WatchdogTimestamp[Monotonic] to the systemd service
D-Bus API. The timestamp is updated to the current time when the
service calls 'sd_nofity("WATCHDOG=1\n")'.
Using a timestamp instead of an 'alive' flag has two advantages:
1. No timeout is needed to define when a service is no longer alive.
   This simplifies both configuration (no timeout value) and
   implementation (no timeout event).
2. It is more robust. A 'dead' service might not be detected should
    systemd 'forget' to reset an 'alive' flag. It is much less likely
    to get a valid new timestamp if a service died.
2012-02-01 19:29:19 +01:00
Michal Schmidt
d200735e13 dbus: more efficient implementation of properties
The way the various properties[] arrays are initialized is inefficient:
 - only the .data members change at runtime, yet the whole arrays of
   properties with all the fields are constructed on the stack one by
   one by the code.
 - there's duplication, eg. the properties of "org.freedesktop.systemd1.Unit"
   are repeated in several unit types.

Fix it by moving the information about properties into static const
sections. Instead of storing the .data directly in the property, store
a constant offset from a run-time base.
The small arrays of struct BusBoundProperties bind together the constant
information with the right runtime information (the base pointer).

On my system the code shrinks by 60 KB, data increases by 10 KB.
2012-01-16 13:34:42 +01:00
Michal Schmidt
ac155bb885 unit: remove union Unit
Now that objects of all unit types are allocated the exact amount of
memory they need, the Unit union has lost its purpose. Remove it.

"Unit" is a more natural name for the base unit class than "Meta", so
rename Meta to Unit.

Access to members of the base class gets simplified.
2012-01-16 13:34:42 +01:00
Lennart Poettering
57020a3abf unit: properly update references to units which are merged
When we merge units that some kind of object points to, those pointers
might become invalidated, and needs to be updated. Introduce a UnitRef
struct which links up all the unit references, to ensure corrected
references.

At the same time, drop configured_sockets in the Service object, and
replace it by proper UNIT_TRIGGERS resp. UNIT_TRIGGERED_BY dependencies,
which allow us to simplify a lot of code.
2012-01-06 23:08:54 +01:00
Lennart Poettering
bfebab7f69 dbus: split out object management code into dbus-common, and simplify it 2011-04-16 02:03:35 +02:00
Andrey Borzenkov
893844ed43 dbus: add service D-Bus property "Sockets" 2011-03-17 23:22:49 +03:00
Andrey Borzenkov
cb7f69965d dbus: consolidate service SysV conditionals
No need to define the same set of properties twice. While on it,
add FsckPassNo to introspection.
2011-03-17 23:22:49 +03:00
Lennart Poettering
05feefe0fb dbus: properly generate UnknownInterface, UnknownProperty and PropertyReadOnly errors 2011-03-09 20:01:53 +01:00
Lennart Poettering
34df5a34e1 drop unnecessary suffix NULs as gcc adds them anyway 2011-03-09 19:48:02 +01:00
Lennart Poettering
3185a36b05 service: make main pid guessing optional, and reread pid file after reloads 2011-02-13 18:51:30 +01:00
Thierry Reding
9a60da2834 build-sys: allow cross-compilation
When cross-compiling systemd, the introspection XML files fail to be
generated because the systemd host binary is not executable. This patch
works around this by putting the introspection XML data into separate
ELF sections and extracting them from the binary when generating the XML
files.

The extracted XML data is passed through the strings utility in order to
strip the trailing NUL character. A small AWK script is used to prepend
the doctype and add the opening and closing node tags respectively.
Finally, the C preprocessor is used to substitute the correct doctype
information from the D-Bus header files.
2010-11-23 22:38:55 +01:00
Lennart Poettering
288c783a9d dbus: epose FsckPassNo property for service objects 2010-10-22 16:12:26 +02:00
Fabiano Fidencio
07459bb6b9 sysv: optionally disable of SysV init/rcN.d support at compile time
This patch adds a cpp definition HAVE_SYSV_COMPAT that is used to
isolate code dealing with /etc/init.d and /etc/rcN.d for systems where
it does not make sense (one that does not use sysv or one that is fully
systemd native).

The patch tries to be as little intrusive as possible, however in
order to minimize the number of #ifdef'ed regions I've reordered some
code in path-lookup.c:lookup_paths_init() where all code dealing with
sysv is now isolated under running_as == MANAGER_SYSTEM as well.

Moreover, In struct Service, some fields were rearranged to reduce
the number of ifdefs.

Lennart's suggestions were fixed and squashed with the original patch,
that was sent by Gustavo Sverzut Barbieri (barbieri@profusion.mobi).
2010-09-27 03:25:05 +02:00
Lennart Poettering
c4e2ceae94 dbus: follow standardized fdo PropertiesChanged signal spec 2010-08-20 02:31:54 +02:00
Lennart Poettering
02ee865a46 service: rename ValidNoProcess= to RemainAfterExit= 2010-08-17 19:37:36 +02:00
Lennart Poettering
d6c9574fb5 emacs: make sure nobody accidently adds tabs to our sources 2010-08-14 19:59:25 +02:00
Lennart Poettering
2e22afe909 execute: add ability to configure the kill signal 2010-07-10 04:49:37 +02:00
Lennart Poettering
fe68089df6 dbus: complete exec command coverage 2010-07-04 20:38:14 +02:00
Lennart Poettering
b58b41160f dbus: complete exec status coverage 2010-07-04 18:49:58 +02:00
Lennart Poettering
d264aa332a dbus: complete coverage of service units 2010-07-04 05:14:30 +02:00
Lennart Poettering
5e8d1c9a9f dbus: to make sure that systemd stays controllable during early bootup, register our services on our own micro usb server in addition to the bus 2010-06-19 03:04:04 +02:00
Lennart Poettering
8c47c7325f notify: add minimal readiness/status protocol for spawned daemons 2010-06-16 05:10:31 +02:00
Lennart Poettering
4288f61921 dbus: automatically generate and install introspection files 2010-05-23 03:45:33 +02:00
Lennart Poettering
e99e38bbdc build-sys: move source files to subdirectory 2010-05-16 18:45:24 +02:00