summaryrefslogtreecommitdiff
path: root/src/dbus-service.c
AgeCommit message (Collapse)Author
2012-02-01service: add watchdog timestampMichael Olbrich
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-01-16dbus: more efficient implementation of propertiesMichal Schmidt
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-16unit: remove union UnitMichal Schmidt
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-06unit: properly update references to units which are mergedLennart Poettering
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.
2011-04-16dbus: split out object management code into dbus-common, and simplify itLennart Poettering
2011-03-17dbus: add service D-Bus property "Sockets"Andrey Borzenkov
2011-03-17dbus: consolidate service SysV conditionalsAndrey Borzenkov
No need to define the same set of properties twice. While on it, add FsckPassNo to introspection.
2011-03-09dbus: properly generate UnknownInterface, UnknownProperty and ↵Lennart Poettering
PropertyReadOnly errors
2011-03-09drop unnecessary suffix NULs as gcc adds them anywayLennart Poettering
2011-02-13service: make main pid guessing optional, and reread pid file after reloadsLennart Poettering
2010-11-23build-sys: allow cross-compilationThierry Reding
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-10-22dbus: epose FsckPassNo property for service objectsLennart Poettering
2010-09-27sysv: optionally disable of SysV init/rcN.d support at compile timeFabiano Fidencio
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-08-20dbus: follow standardized fdo PropertiesChanged signal specLennart Poettering
2010-08-17service: rename ValidNoProcess= to RemainAfterExit=Lennart Poettering
2010-08-14emacs: make sure nobody accidently adds tabs to our sourcesLennart Poettering
2010-07-10execute: add ability to configure the kill signalLennart Poettering
2010-07-04dbus: complete exec command coverageLennart Poettering
2010-07-04dbus: complete exec status coverageLennart Poettering
2010-07-04dbus: complete coverage of service unitsLennart Poettering
2010-06-19dbus: to make sure that systemd stays controllable during early bootup, ↵Lennart Poettering
register our services on our own micro usb server in addition to the bus
2010-06-16notify: add minimal readiness/status protocol for spawned daemonsLennart Poettering
2010-05-23dbus: automatically generate and install introspection filesLennart Poettering
2010-05-16build-sys: move source files to subdirectoryLennart Poettering