We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

systemd in Debian

00:00

Formale Metadaten

Titel
systemd in Debian
Serientitel
Anzahl der Teile
90
Autor
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
Wheezy is the first release of Debian with systemd. We are going to give an overview of systemd itself, the current state of systemd in Debian and what our plans for the next release cycle are. In addition, we'll cover what packagers should know about systemd. Table of contents for the talk: I. What is systemd (and why does it exist) 1. service management 2. components and how they work together: init, udev, journal II. systemd in Wheezy 1. what works 2. what doesn't work 3. lessons learned III. systemd in Jessie 1. policy and helpers 2. cleanups in init scripts a) systemd-to-initscript converter 3. udev for non-systemd systems IV. systemd for packagers
25
Vorschaubild
15:46
51
54
Vorschaubild
15:34
55
57
Vorschaubild
1:02:09
58
Vorschaubild
16:08
62
Vorschaubild
13:26
65
67
BitXML
EreignishorizontDienst <Informatik>ProgrammierumgebungSkriptspracheBitAggregatzustandPhysikalisches SystemAutomatische HandlungsplanungSoftwareentwicklerRelativitätstheorieIntegralElektronische PublikationVorlesung/Konferenz
Physikalisches SystemEreignishorizontDienst <Informatik>ProgrammierumgebungSkriptspracheDesintegration <Mathematik>DatenverwaltungHardwarep-BlockGebäude <Mathematik>Operations ResearchBootenComputeranimation
VerzeichnisdienstSkriptspracheTypentheorieRechenwerkPhysikalisches SystemKonfigurationsraumSkriptspracheQuellcodeE-MailRechenwerkZentralisatorMultiplikationsoperatorDifferenteMAPDienst <Informatik>ServerElektronische PublikationOrdnung <Mathematik>SocketDeskriptive StatistikTypentheorieGruppenoperationPunktMomentenproblemVorlesung/KonferenzComputeranimation
SocketStrom <Mathematik>ZahlenbereichCodeVersionsverwaltungBootenFahne <Mathematik>SkriptspracheDienst <Informatik>Socket-SchnittstelleMomentenproblemPhysikalisches SystemForcingSkriptspracheVersionsverwaltungMAPBootenSoftwareStereometrieGefrierenUmkehrung <Mathematik>ZahlenbereichAggregatzustandFramework <Informatik>BitFahne <Mathematik>App <Programm>StrömungsrichtungATMSchnittmengeVorlesung/KonferenzComputeranimation
Strom <Mathematik>BootenFahne <Mathematik>SkriptspracheSpeicherabzugDienst <Informatik>CodeZahlenbereichVersionsverwaltungSkriptsprachePhysikalisches SystemKonfigurationsraumDienst <Informatik>VerzeichnisdienstMechanismus-Design-TheorieVerschlingungEinsTermBus <Informatik>Vorlesung/KonferenzComputeranimation
Desintegration <Mathematik>BinärdatenPhysikalisches SystemPhysikalisches SystemFlächeninhaltTermSkriptspracheBus <Informatik>DatenverwaltungServerVersionsverwaltungMailing-ListeSpielkonsoleSoftware Development KitLipschitz-StetigkeitLoginBinärcodeCASE <Informatik>Dienst <Informatik>VideokonferenzGraphische BenutzeroberflächeProgrammbibliothekBildschirmmaskeBinärdatenElektronische PublikationInstallation <Informatik>SimulationVerschlingungsinc-FunktionVorlesung/KonferenzComputeranimation
Desintegration <Mathematik>BinärdatenLaufzeitfehlerProzess <Informatik>Physikalisches SystemSkriptspracheDienst <Informatik>Computeranimation
SkriptsprachePhysikalisches SystemBitSoftwarewartungSystemaufrufFunktionalVorlesung/Konferenz
Desintegration <Mathematik>BinärdatenPhysikalisches SystemSkriptspracheStrahlensätzeÜberlagerung <Mathematik>Funktion <Mathematik>BootenParametersystemPhysikalisches SystemParametersystemBinärdatenMathematikDifferenteVersionsverwaltungDifferenzkernIntegralBootenAggregatzustandComputeranimation
Desintegration <Mathematik>BinärdatenParametersystemBootenPhysikalisches SystemDemo <Programm>Virtuelle RealitätHill-DifferentialgleichungKlon <Mathematik>RechenwerkQuaderGraphische BenutzeroberflächeSoftwareFigurierte ZahlPhysikalisches SystemLipschitz-StetigkeitBootenSchlüsselverwaltungSoftwaretestObjektorientierte ProgrammierspracheInstallation <Informatik>ComputeranimationProgramm/QuellcodeVorlesung/Konferenz
MathematikMomentenproblemGruppenoperationBootenKonfigurationsraumKernel <Informatik>DefaultPhysikalisches SystemMetropolitan area networkWeb-SeiteMessage-PassingParametersystemMenütechnikProgramm/QuellcodeComputeranimation
KonfigurationsraumCAMSchnittmengePhysikalisches SystemFunktion <Mathematik>MAPWeb-SeiteElektronische PublikationVorlesung/KonferenzComputeranimation
FestplatteProzess <Informatik>DualitätstheorieAnfangswertproblemWeb-SeiteElektronische PublikationLaufzeitfehlerWarteschlangePhysikalisches SystemDienst <Informatik>SoundkarteHardwareRechenwerkMultiplikationsoperatorRechter WinkelMereologieVorlesung/KonferenzProgramm/QuellcodeComputeranimation
EreignishorizontPasswortPhysikalisches SystemVerzeichnisdienstDateisystemProgrammierumgebungE-MailRegulärer GraphSpielkonsoleInstallation <Informatik>RechnernetzDienst <Informatik>BootenElektronische PublikationGasströmungSprachsyntheseSinusfunktionKernel <Informatik>Modul <Datentyp>EinsDienst <Informatik>SkriptsprachePhysikalisches SystemProgramm/QuellcodeComputeranimation
RechnernetzSocketKernel <Informatik>Physikalisches SystemNormalvektorLastÜberlichtgeschwindigkeitKontrollstrukturHill-DifferentialgleichungInformationsspeicherungSprachsyntheseDienst <Informatik>Physikalisches SystemDefaultStrömungsrichtungAggregatzustandProgramm/QuellcodeComputeranimation
Virtuelle RealitätVerzeichnisdienstPhysikalisches SystemEinfügungsdämpfungMAPPatch <Software>Syntaktische AnalyseSkriptspracheE-MailDienst <Informatik>MereologieMultiplikationsoperatorSocketUmsetzung <Informatik>BereichsschätzungComputeranimation
Physikalisches SystemSkriptspracheMechanismus-Design-TheorieZweiDienst <Informatik>Prozess <Informatik>Mathematische LogikVirtuelle MaschineGruppenoperationKonfiguration <Informatik>Dämon <Informatik>Elektronische PublikationHauptidealringTransaktionNotepad-ComputerVorlesung/Konferenz
DefaultPhysikalisches SystemDefaultPhysikalischer EffektVisuelles SystemFramework <Informatik>XMLComputeranimationVorlesung/Konferenz
DefaultATMFunktion <Mathematik>SpielkonsoleBootenQuellcodePhysikalisches SystemMultiplikationsoperatorMereologieKomponente <Software>Leistung <Physik>DatenverwaltungComputeranimationXMLVorlesung/Konferenz
SpielkonsoleBootenDefaultBinder <Informatik>BinärdatenFunktion <Mathematik>SchnittmengeSpielkonsoleGraphische BenutzeroberflächeDatenverwaltungMultiplikationsoperatorLeistung <Physik>FunktionalDämon <Informatik>Physikalisches SystemSoftware Development KitLoginUnternehmensarchitekturComputeranimation
Physikalisches SystemVollständigkeitKonfiguration <Informatik>BootenMeta-TagModelltheorieDifferenteDreiecksfreier GraphSnake <Bildverarbeitung>UnternehmensarchitekturVorlesung/Konferenz
SystemprogrammierungAnalog-Digital-UmsetzerSynchronisierungDienst <Informatik>Physikalisches SystemInstantiierungSondierungRechter WinkelPatch <Software>CASE <Informatik>Computeranimation
SystemprogrammierungAnalog-Digital-UmsetzerSynchronisierungCASE <Informatik>Innerer PunktSkriptspracheDienst <Informatik>RechenwerkPhysikalisches SystemBootenBitProjektive EbeneCodeUmsetzung <Informatik>Deskriptive StatistikDämon <Informatik>GoogolComputeranimation
SystemprogrammierungAnalog-Digital-UmsetzerSynchronisierungPhysikalisches SystemDämon <Informatik>Dienst <Informatik>EnergiedichteDeskriptive StatistikSkriptspracheUmsetzung <Informatik>Innerer PunktElektronische PublikationSchlüsselverwaltungKonfiguration <Informatik>Arithmetisches MittelMereologieComputeranimation
SystemprogrammierungAnalog-Digital-UmsetzerSynchronisierungPhysikalisches SystemDienst <Informatik>SkriptspracheKette <Mathematik>Elektronische PublikationTermWort <Informatik>Umsetzung <Informatik>ComputeranimationVorlesung/Konferenz
MomentenproblemMultiplikationsoperatorComputeranimation
Graphische BenutzeroberflächePhysikalisches SystemKontextbezogenes SystemDreiecksfreier GraphElektronische PublikationMultiplikationsoperatorRechenwerkAutomatische IndexierungSoftwarewartungSkriptspracheUmsetzung <Informatik>Dämon <Informatik>Rechter WinkelMomentenproblemCASE <Informatik>SchlüsselverwaltungVorlesung/Konferenz
RechenwerkElektronische PublikationService providerVariableGruppenoperationPunktMultiplikationsoperatorSoftwareentwicklerElektronische PublikationPhysikalisches SystemBitStrömungsrichtungVerband <Mathematik>SchlussregelCodierungSkriptspracheSoftwaretestDienst <Informatik>Dämon <Informatik>Bus <Informatik>CASE <Informatik>UmwandlungsenthalpieTypentheorieKonfigurationsraumDruckspannungDifferenteDefaultSystem FDynamisches SystemRechenwerkInstallation <Informatik>Gebäude <Mathematik>RFIDBinärcodeEinsMathematikHeegaard-ZerlegungArithmetisches MittelSystemverwaltungVerzeichnisdienstProzess <Informatik>Mechanismus-Design-TheorieFahne <Mathematik>QuellcodeProgrammbibliothekFunktion <Mathematik>RechenschieberHilfesystemRückkopplungE-MailAdressraumPuls <Technik>MultifunktionLipschitz-StetigkeitGruppenoperationHecke-OperatorRhombus <Mathematik>WidgetNotepad-ComputerRechter WinkelAutorisierungStabXMLComputeranimation
Physikalisches SystemRückkopplungMereologieMultiplikationsoperatorMomentenproblemVorlesung/Konferenz
Vorlesung/KonferenzXML
Transkript: Englisch(automatisch erzeugt)
But yeah, hello, I think we did a check. Yeah, that's good. Hello and welcome everybody
I'm taller for him and I'm Michael I've been a bit that been developed since 2001 and Mike Michael and I are here today to talk about system D in heaven both the current state a little bit about system D itself and
Our plans for Jesse and a bit on how we see the integration of Of system D in Debian, especially also in relation to to order in its systems The idea is
After is probably mostly what you want as a writer of a system D file and
The really cool thing here is as Tollef already said As system five in scripts are just another configuration source for system D it parses the LSP header and I mean, I'm going to show it quickly later on What you can do is you can declare dependencies between all of them. So I mean there are other systems which treat
system five in it as a completely different and separate from the own In its system and the cool thing here is that you can mix and match and What this also means for Debian is that we can
Later on, we're going to talk about that. You can actually replace Packages one by one and it doesn't matter in which order if this is happening because the dependencies will still work so system D has certain unit types unit is The central configuration source system system D. It's any based any style based
and and we have seen an example earlier so and They're basically I Try to group them. They're basically six types which you need to be aware of. There's the target which we already mentioned a target is
comparable to to a run level in system five in it one of the differences is that multiple targets can be active at the same time and for example The multi-user target is comparable to our RC 2 or 2 to 5 which we use in Debian a
Service is the central description of an actual service that you want to have started Socket is a Special unit file which is needed for services which provide socket activation. We'll go into detail later on mount auto mount and swap units They're basically most most of the time internal in for system team system D
parses it it's a FS tab and generates units for for the defined devices in there and the mount points and You usually don't have to write mount units, so You can do that and you can mix and match them
But most of the time you just keep on using FS tab and just be happy with it So that there are path units and timer units Timer based activation is something which will become more interesting in the future at the moment I don't think it's really relevant for Debian So what we are mostly interested in for you should be interested in our target services and sockets
So That's for the quick introduction of about system team now I want to talk about the current state in VZ a little bit. So it's based on version 44 and I already heard about many for many people who said oh Debian as usual outdated
What many people don't know is that system D and you diff or actually a lot of people do know that they were merged They were a lot of framework flame wars but to align the version numbers We skipped hundred and thirty and nine releases. I think so
What we are we are currently fortune releases behind I think it's half a year or something like that. Yeah, I think it's a pretty solid release What's mostly missing in version 44 is that the journal is not as powerful and capable But But we were as we are freezing half a year ago. We did that before the the UW system demerges
So that's why we chose that or what? That's why we ended up with that version So What we achieved in in VZ and we're going to show that later is that Basically our RCS around level. I don't know how many people of you know, so the basics
workings of a Debian system 5 in it based system where we have the RCS run level which is basically for setting up the initial system where you mount the stuff where bring up the network and stuff like that and we Mode yeah, we basically got rid of that you can actually
Deepak h-force uninstall the init scripts package and system D will still boot. This is of course problematic Because in Debian we have so-called essential flags where D package with an app than the other front ends Well, actually not allow you to remove that package with that flag set So what we opted for instead is that we blacklist those scripts
That's a mechanism by system D where you can just some link the Service to death now and that means for system team that that you should ignore that service so even if the underlying in its script is system 5 in it based we can simply get to death now in a
configuration directory from in system D and we will be ignored by system D and We do have about 1200 system 5 init scripts in Debian, which is a lot But we don't actually have to care about
All of them from the start if you want to have the biggest impact we start Converting the most important ones and we do have that For example, you'd have D bus RCS log. So I mean there's the the term plumbing layer Which has been coined of since a few years
We Do actually have quite good coverage in that area. We have about 60 60 packages Which are already converted and for a typical a desktop installation I'd say you do not actually have that many LSP system 5 init scripts left, which are still running Some but but the the basic in its a basic system is brought up by system B
So, what do you When we package system D we split up in different packages, there's Four main binary packages besides a few library packages. It's the system D package then there's
Fairly fairly simple and Basic UI for it, which you can use its system D GUI. There's system D slash system 5 Which is nothing more than just a bunch of sim links Which replace for example has been slash has been slash in it with a sibling to to bin system D
Since that's a file conflict with the system 5 init package And since five in it, this is five in a package again has the problem that it's an essential package We decided to move all those All those sim links into a separate package so you can actually install system D without
having a conflict by the trigger by the package manager and Last but not least. There's lip am system team, which basically hooks into a Lock in D, which is a service which tracks locked in users, it's basically a successor of console kit and
What list lip am system D does is it reaches the register as a session for the user when you do a login and Usually you want to do that if you have a desktop system Where you want to have ACL supplied for your audio devices video devices and stuff like that I mean there there can be corner cases where you wouldn't want to do that on a server
Maybe on a restricted server, but you should I mean we've seen that a lot people who? Disable recommends who didn't have a lip am system D installed. We all say you usually should do that
When when you are studying a system 5 init script Or when it's brought up during the system in this initial initialization, sorry Is that it the actual init script is started by system D? But when you later on during the runtime of this system when you are running at C in a D
Or syslog start stop restart something like that You will kill the process But system D will just notice that that it's been killed and marked as the service has failed What do you actually want in that in that place is that you? Send this start stop restart request to system D and system D will do the restarting for you
So what we applied is a bit of a hack I'd say we are not that proud of it, but but it's it's working exceptionally well I think so there are quite a few or most of the init scripts system 5 init scripts in Debian use the LSB init functions
As I said there are 1200 packages and about 900 of them use those LSB init functions and we use that that when it's sourced we use that to redirect those start stop restart calls and Divert that to system D. That also means if you are installing a packet package and the post maintainer scripts run
Invoke RCD and stuff like that. It's also indirectly redirected and For that it's working pretty well, but we want to address this later Make that better As I said as we split off the the actual siblings the conflicting files out of this into a different package
System D can be installed alongside alongside system system 5 init without any conflicts You can still have that as a safety net installed All you need to do is to change your your boot command boot parameter just add in its
Equals bin system D to your command line and then it will just fire up and start system D And it will take over from there. So we do not do actually Change the system in any way which would make it impossible to go back to system 5 in it if you desire to do So I just wanted to show you the the current state of the system of the integration
So what we have here is basically a stock installation of DB and WYSI. It's
It's running the gnome desktop It actually works with 3d and come shell fall It's running inside a box Do people hear me if I put the microphone here? So what I'm going to do is just that got installed system key
top the network is B figures stuff like that as you've seen a lip hem system. These installed automatically. It's a recommends
so it should be brought in I still had system 5 in its boot it as you can see from the
I can take a look So at the moment what you have to do is you have to change your group configuration to still boot
to to boot system D I'll do that man you at the moment probably the easiest way is to just take that into your it's a default grab configuration and
So now now what I did I forgot to remove the quiet wood parameter so
That What system D does here is It takes the the quiet parameter with which is usually used for the kernel messages and Applies that to its own configuration. You can override that there in the system demand page like system D
log level you can trigger You can change it you can change those settings both on the common command line as well as in the configuration file
Too bad Pardon and it actually worked it actually worked
So system CTL is your command with
Which you are going to manage most of the time your services So what you are seeing here are device units or what about your hardware? All right and
You're going to see here Those are all native services their mount part the mount units pass Then here are services these ones are the the LSP services Here we do have a native one Over here. I mean there's there's there's lots of still crazy stuff in there, which we can trim down
Basically if you scroll down you'll see we do still do have a couple of LSP in it scripts in there, but Ours is look pretty kid to a big deal the deepest activated services are native
Like all right it works pretty well, so That command line tool system CTL That's basically used for for starting stopping new services Services by default are this disabled and you need to enable them explicitly
And you can do that with the enable commander disable command from system CTL It's basically everything I wanted to show to you So, but but there are still some problems in the current state of WYSI
In serve has a very special way of defining System facilities these are virtual facilities Which are You should actually be declared in the system 5 the LSP header of the system 5 in the script itself
But but insert pulls that out and has a Etsy insert of confidence directory where it declares them, so It's not used by a lot of a lot of system 5 in its script, but a few for example port map declares
Declares so system facility and due to that And if s mounting is currently not working I mean we are probably going to address that in Jesse by by adding insert forcing support. We do have patches for that I'm almost likely we are just going to to convert
NFS common and port map to use socket activation so this problem will just go away because we don't need those explicit dependencies anymore and Tall have briefly mentioned it at the beginning Most of the time if there are problems with with services in system T. It's it's because they're badly written and I
mean Be honest most of us just just copy existing system 5 in its scripts Do some changing of the path and that's about it nobody actually understands what he's doing in there, so at least we have the impression that most people do that and What we've seen I mean we have around
1200 in its grips and I did a crap over those files and it were about 1100 sleeps in there it might I mean that's terrible. It's just terrible and One thing that's that's causing problems for us that people actually don't use The existing mechanisms to reliably stop a service start stop demon has something like that the retry option
Which waits until the demon process has stopped or at least it did the PID for that process is no longer running What what many people do is they just kill the signal to kill the process at asleep I mean you do three seconds five seconds whatever it depends
On how fast your machine was where you developed open where you've written the system five in the script and this is this is causing problems for system T because system T just Issues the stop command and doesn't wait for that Restart is another problem where system five in its grips do something between stop and and and start and just indeed the the
transaction lock logic doesn't actually have a restart command inside so it translates that to an stop request and start requests and So if you do more in the restart action, that's actually something assistant. You will not execute
I mean there are a few a couple of system five in the scripts. Not that much We we first thought that we could add a workaround to system D But in the end we decided it's probably just better to get the in scripts fixed and we think it's the right way to do
Yeah, so Jesse the next release We're probably going to be using system 5 in it on most systems With the Obvious So in the next in GNOME 3 8 I think they're going to start depending on system D
Which it will go cause all kinds of interesting frameworks. I'm sure so by default Well, I think we're likely to see system 5 in it as still the default System D is obviously going to be supported If we can move to a single in a system for Jesse that would make me very happy
But I think I don't think that's going to fly politically Because I mean this is this is as much a political question as a technical question, I think Yeah The the source trees for system D and you'd have emerged
We're going to keep you dev in its own separate binary package So if you want to keep system D out of your system, you can at least for the time being do that But Yeah, yeah asked me to take over from here because I'm also part of the GNOME team and I mean
We are quite a few people in the GNOME team and we talked about what to do it with 3.8 where more and more components are going to rely on system D. There's inhibit stuff for power management There's a lock in the already mentioned lock indie which replaces console kit and it's getting more and more complicated for us
And we simply do not have the resources to to keep console kit alive So we basically decided that for Jesse we are going to fully switch to a lock indie Which means we will we will no longer use console kit on our Linux based systems
What it exactly means for non Linux systems about k3bst. We actually don't know yet. I mean, maybe it's possible to to just disable this kind of functionality in GNOME settings demons and Still works. We don't know
The thing is we are more or less Know that we do not have actually many or if any GNOME users on on k3 speed k3bst And we spend a lot of time of our time to just get the architecture compiling running and without any actually users which test and run this stuff, so I
Mean it will probably happen that some of our packages will become Linux any in the GNOME stack I guess that's that's what we're going to see What it actually means for For installation of new systems is that we probably going to provide a grub snippet
Which the the GNOME meta packages can depend on so your system is Automatically set up to boot into systemd. So we don't have to hack the command line the boot command line. I Don't know if it's possible to Depend on system to select this five because that will conflict with the system five in it package and we want
Want to let people keep this option to switch back to system five in it if they took so deserves So more of a safety net then we actually encourage that but I mean if people are given the opportunity To explore the new system. I mean, it's fairly new new commands. It works different
The complete different mental model in many ways and we thought it's probably a good idea to To give people at least for release cycle the option to switch back to system five in it So we'll support it in parallel
Yeah, and we're going to make it easier to package up systemd support and and also make some of the tools that we that are in the base system be more Aware of system system D So for instance surveys invoke our CD update data CD right patches to make sure that they will actually do the right thing
And they're actually already patches. We just have to get them. Yeah, we need to actually get them much So for instance, if you disable a service for in in one in its system It should also be disabled in the other one Um Because you know, it's a bit silly if you disable it
Do you agree with that? I mean I hear them moaning Okay
Yeah, so the the case where we blacklist the services from the inner script package that in that case We won't actually use update our CD to do that. We will just blacklist this in in a way
Which is specific to system D. So yeah, no, no, no, absolutely not I mean like if you then boot into into system 5 in it Obviously the like the net scripts that it depends on should run just like when you're when you boot system System D. We use that the native services we have for doing the same thing
There is also last year there was a Google summer of code project Which was a system D unit to system 5 in its script converter It needs a bit of fixing and brushing up and stuff but that's also something we want to investigate because as as you saw writing a service description for system D is really simple and
If we could just generate the in its scripts that would hopefully both make the k3b see people happy because they can keep their their in its script and it would hopefully also lead to higher quality in its scripts if people were to
when people are Keep using system 5 in it It's not going to be a solution for all all of the different Scripts, but if we can like for the easy normal demons man's to do that that's also going to make it much easier to
not diverge between inner scripts and system days service descriptions because Let me just jump in here for a second That system D to system 5 in a converter is mainly interesting I think in the future I mean, we already have those system 5 in its scripts written and I won't go away overnight. So
It's not like supporting system D in Debian means we are cutting off key freaks BSD or other ports It just means that if you want to support system D You are going to those files in the future and maybe maybe in the future when you don't want to write system 5 in its scripts anymore you just Use that option we provide and we can still keep support for those ports
and if it's not possible to do that with that then It could be that you still you have to write two files, which can be a pain for us for some some people but as you've seen they're pretty simple the
service files, so Really shouldn't be that much yeah, and as as Michael already mentioned we can because we have the Because system 5 in its scripts are first-class citizens We can actually change packages one by one we can we can start shipping if you are If you have a package in the middle of a dependency chain, you can start shipping service files
Today well when Jesse opens Without having to coordinate that with the packages which you depend on and the packages that depend on you That's pretty pretty neat. Yeah
Yes, yeah No, maybe maybe it's a bad term talking about converting. It's adding support for system D Updating is a better word, which is on the slide. So yeah, not I mean unless you yeah You don't want to drop the system 5 in its scripts yet unless for some reason you really don't run
With system 5 in it, which you probably do today Yeah That's yours. Yeah, so I see we are already pretty late on time. So I think we have a question So I think that wouldn't be a good idea at the moment for it
At least for Jesse should I repeat a question? Yeah, okay Sorry, the question was if I as a package maintainer want to add system D support to my package But but they can't be bothered to write a system 5 in its script Should I just depend on the system D package and I think you shouldn't do that at the moment at least not for Jesse I mean as we said
we give we have to give people at least one release cycle or to time to get used to the new system and Maybe we can we can circumvent the problem by providing such an system D to system 5 in it converter So you don't have to do that. I mean for the simple cases. It should just work, right?
Right. That's exactly what system D. That's that's a different topic. And that's what we are going We are going have to do in normal, yeah, but for a for
Demon, I'll still add it
I mean you you can't actually know if a damon is used in the context of only or if it Used outside of gnome. So I don't actually think there are that many assistant five in its scripts Which are affected by or are in the gnome stack. Let's put it that way Okay
So as I said, I'll I'll just go to skip over that pretty quickly So because we're running out of time, I think we only have an hour. So unit files are simple declared text files that one is important this point because I think it's been talked about that on Debian developer for a while
Some time ago is this override mechanism which is used more and more in packages and The idea here is that you ship the the package ships. It's it's configuration source files default file under lib or use a lib and if you have to dynamically change it by by some kind of
Dynamic mechanism you put that in slash run and Otherwise if an administrator has to overwrite a unit file a service file or anything He puts it in at at C and there's corresponding directories where you put that
let me repeat that packages should put it on their lab system these the system and Yeah, so there's actually a configuration a package config File it's called the system D. It's currently in the system D Binary packet we didn't bother splitting it off into a system D slash def package
It's kind of pointless because install like bill depending on system D Sure, it will it will install system D on that building But it won't actually make any like it won't make it won't change the base system So it's it's actually harmless to install system D on on a system And it doesn't change anything unless you boot and tell it to use it the question has come up a few times
And we just said I'm one Tiny a text file a package config file. We won't do that
Okay, okay and how you're gonna call the package I mean
I Yeah, okay what what I completely forgot is to add that Leonard is here the other system D He was kind enough to show up so Can give him a hand of applause at the end
So the different service types, I guess I'll just skip over there pretty quickly there are there are Mainly five important ones Five ones and important ones are forking and D bus and maybe simple the other ones one shot is Usually used if you have a script which it just executes in system five
It was a good example x11 common which just sets up a few files, but but doesn't start any long-running service That's the one you want to use for one shot simple is the default. It's for non forking demons D bus Type specifies
Where you signal system D when a when a process has Demond has started and is ready to to accept requests that means Dependencies which depend on it are started so you can grab a name on the under system bus And if that happens System D will continue starting dependent services, and that's what the type D bus is for you specify the bus name
And if that's taken the service is considered up forking Means that the demon it's a classic system five Demon if you specify a pit file it will look into that and usually in the olden times
When the pit file has been written it was the signal that the the demon was up and and ready to serve requests Notify is something system T specific and needs special support by the by the by the actual damon to signal I'm ready, but please continue I Think they're just a handful. I only know a very demon which uses as the notify are there more
Okay, yeah Right, but but outside of system D. I do not know a lot of services you choose Okay, one thing you should know is that LSP system five types of services are using type forking remain after exit true
That means for example, oh It's already up Pretty much, okay, so okay, I go into detail here Just let me oh one thing which I
Wanted to stress is that a system T unifies the different type of service activations I mean currently in system system five in it we have Basically the UW system D bus demon which which starts services on demand we have people running
Stuff in UW rules long-running processes We do five in it and it's completely separate and and system five in it doesn't know about all the types of services system deep pulses all together and provides those different types of activations Let's go over that if times going to see we just skip to the conclusion
Okay I guess if you if you're interested We're going to put the slides online. So I think we'll basically just skip to skip. Yeah, we kind of do Yeah, so say maybe no time at all
Go back one slide if you're going to write system five in its scripts Or if you have system five in scripts in your package You can do that today to better support system five system D and that's basically already what we mentioned avoids start-stop on Doing special action on restart
We do have a Kind of a hack in system T where we parse the the help output so we know if a demon supports reload many do Get that wrong. They they say they're them and supports reload even if it doesn't so Try to to avoid doing that
if it's possible don't use enable disable flags in your and If if possible don't use any deviant specific config files at all If for example If in any case you have to tests if because you have system D specific codes in your in a system
In a script or something else just use that test and shell Okay, yeah, so Conclusion Currently don't add like well, we're in the middle of a phrase. It's kind of hard to add much
But wait until dress is open and we actually have some more of the policy and all that bit in place Because if you start doing too much before then You're going to have to do extra work It's better to actually not add that extra support then have it broken and surprisingly
Talk to us we're on we're on IRC We also have email addresses. So We also are here. So just grab us if you have any questions We would really like feedback we like I mean it works for me
But and it works for Michael But we don't actually have that much feedback from people on whether or this Works well for people whether what kind of problems you're running into both in in the system D package itself, but also as packagers what kind of like
Do you like? What extra tools do you need? and Yeah, don't be afraid we're not that scary Okay, so we don't have any time for any questions or Okay, sorry, so if you're interested and you still have questions grab out
Sure, yeah at this moment in time I do not Strongly support the ATAR system D or upstart, but I believe that we should really Use one or the other
Because we cannot afford to Continue using an out-of-date in its system My belief is that a simple way to ensure that the Debian will support ATAR upstart Or system D is to make you that depend on one or the other. Thank you