summaryrefslogtreecommitdiff
path: root/src/unit.h
AgeCommit message (Collapse)Author
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-16unit: reduce heap usage for unit objectsMichal Schmidt
The storage of the unit objects on the heap is currently not very efficient. For every unit object we allocate a chunk of memory as large as the biggest unit type, although there are significant differences in the units' real requirements. pahole shows the following sizes of structs: 488 Target 496 Snapshot 512 Device 528 Path 560 Timer 576 Automount 1080 Socket 1160 Swap 1168 Service 1280 Mount Usually there aren't many targets or snapshots in the system, but Device is one of the most common unit types and for every one we waste 1280 - 512 = 768 bytes. Fix it by allocating only the right amount for the given unit type. On my machine (x86_64, with 39 LVM volumes) this decreases systemd's USS (unique set size) by more than 300 KB.
2012-01-11unit: implement new PropagateReloadTo=/PropagateReloadFrom= operationsLennart Poettering
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-11-11job: colored status messages on bootMichal Schmidt
The lack or green/red status marks on boot has been described by some users as "critical", "dramatic", "dealbreaker", "showstopper". Seriously.
2011-08-20exec: optionally apply cgroup attributes to the cgroups we createLennart Poettering
2011-08-01load-fragment: speed up parsing by using a perfect hash table with ↵Lennart Poettering
configuration settings built by gperf
2011-07-31dbus: export unit file stateLennart Poettering
2011-06-21service: check whether sysv scripts where changedLennart Poettering
2011-06-21english: s/_per_/_by_/Lennart Poettering
2011-05-05unit: make ignoring in snapshots a per unit property, instead of a per unit ↵Lennart Poettering
type property
2011-04-16manager: introduce IgnoreOnIsolate flag so that we can keep systemd-logger ↵Lennart Poettering
around when isolating
2011-04-07unit: introduce OnFailureIsolate=Lennart Poettering
2011-03-17def: centralize definition of default timeout in one placeLennart Poettering
2011-03-09condition: take a timestamp and store last result of conditionsLennart Poettering
2011-02-28Spelling CorrectionsHarald Hoyer
Just some lame spelling corrections with no functionality.
2011-02-24job: also trigger on-failure dependencies when jobs faile due to ↵Lennart Poettering
dependencies, timeout
2011-02-24unit: increase default timeout to 3minLennart Poettering
2011-01-20service: when reloading a service fails don't fail the entire service but ↵Lennart Poettering
just the reload job
2010-11-17cgroup: by default, duplicate service cgroup in the cpu hierarchyLennart Poettering
2010-11-15units: get rid of no_requires unit flag, and make crypto disks require ↵Lennart Poettering
cryptsetup service
2010-11-14manager: always pull 'following' units into transactionLennart Poettering
2010-10-29unit: get rid of gnoreDependencyFailure= instead treat ConflictedBy= as ↵Lennart Poettering
weaker counterpart of Conflicts=, similar to Wants= vs. Requires=
2010-10-29unit: replace StopRetroactively= by BindTo= dependenciesLennart Poettering
The property StopRetroactively= needs to be per-dependency, not per-unit, in order to properly express dependencies between .mount units and its .device and fsck .service units. If the .device unit is unplugged the mount should go away, but if the fsck process terminates the .mount should stay.
2010-10-28unit: replace recursive_stop by stop_retroactively to simplify things a littleLennart Poettering
2010-10-22systemctl: introduce systemctl killLennart Poettering
2010-10-13unit: add minimal condition checker for unit startupLennart Poettering
2010-10-08unit: rename 'banned' load state to 'masked'Lennart Poettering
2010-10-08systemctl: fix 'systemctl enable getty@.service'Lennart Poettering
2010-10-08unit: introduce 'banned' load state for units symlinked to /dev/nullLennart Poettering
2010-10-06systemctl: require correctly formed unit names when enabling unitsLennart Poettering
2010-10-05socket: make sockets to pass to a service configurableLennart Poettering
2010-09-14target: add implicit target/unit ordering deps only if both sides have been ↵Lennart Poettering
fully loaded
2010-09-06man: Fix small typo: s/seperate/separate/Michael Biebl
2010-09-01unit: unify some codeLennart Poettering
2010-08-31manager: add missing second part of s/maintenance/failed/Matthew Miller
2010-08-30unit: introduce AllowIsolate= switchLennart Poettering
2010-08-20dbus: follow standardized fdo PropertiesChanged signal specLennart Poettering
2010-08-17emacs: disable tabs in .h files, tooLennart Poettering
2010-08-12unit: don't show ENOENT configuration file warnings for units that are not ↵Lennart Poettering
essential
2010-08-11gc: remove a lot of unused codeLennart Poettering
2010-08-11pahole: rearrange structs to make them smallerLennart Poettering
2010-08-11utmp: enable systemd-update-utmp by defaultLennart Poettering
2010-08-11socket: disable GC for pre-allocated per-connection service until it is usedLennart Poettering
2010-08-11unit: rename OnlyByDependency= to RefuseManualStart= and introduce ↵Lennart Poettering
RefuseManualStop= Some unit shall never be start on user request (e.g. shutdown.target) others never be stopped on user request (e.g. auditd.servce), hence offer options for both.
2010-08-09manager: when two pending jobs conflict, keep the one that "conflicts", ↵Lennart Poettering
remove the one that is "conflicted" This gives the writer of units control which unit is kept and which is stopped when two units conflict.
2010-07-21unit: deduce following unit value dynamically instead of statically, to ↵Lennart Poettering
avoid dangling pointers
2010-07-20device: do not merge devicesLennart Poettering
Don't try to merge devices that have been created via dependencies when they appear in the system and can be recognized as the same. Instead, simply continue to maintain them independently of each other, however with the same state cycle. Why? Because otherwise we'd have a hard time to seperate the dependencies after the devices are unplugged again and we hence cannot be sure anymore that next time the device is plugged in it will carry the same names. Example: if one depndency refers to dev-sda.device and another one to dev-by-id-xxxyyy.device we only learn at time of plug in of the device that it is actually the same device that was ment. In the moment the device is unplugged again we won't know anymore their relation to each other and the next time the harddisk is plugged it might even appear as dev-by-id-xxxyyy.device and dev-sdb.service. To ensure the dependencies continue to have the meaning they were intended to have let's hence keep the .device objects seperate all the time, even when they are plugged in. This patch also introduces a new Following= property which points from the various .device units of a specific device to the main .device unit for it. This can be used by the client side to figure out the relation of the .device units to each other and even filter units from display.
2010-07-19systemctl: introduce reset-maintenance commandLennart Poettering
2010-07-17job: timeout every job independently of the unitLennart Poettering