Lennart Poettering (lenn...@poettering.net) said: > > upstart jobs have two main types - 'services' and 'tasks'. systemd, while it > > has many other types, doesn't have a 'task' analogue. So, for anything that > > has the semantics of a task (at this time/dependency, do this thing and > > exit), ends up being encoded as a service of type 'finish', often > > with 'ValidNoProcess=yes'. > > Well, "Type=finish" is supposed to be exactly what Upstart calls > "tasks". I must admit that the word "finish" for this sucks, so we are > open to change this to make it more discoverable. However, I am not sure > "task" is a good choice of names here either, since the low-level stuff > we work with here already uses "tasks" for something else (i.e. as a > generalization of processes and threads in the kernel). I wouldn't wan't > to add confusion here.
Will those that are interacting with the unit files be the same set that will interact with the 'task' low-level infrastructure? If not, it might be OK to use the same verbiage. > So, maybe "Type=transient" is nicer? Sounds a bit scientific but this > word is not unheard in the Free software world at least (i.e. X uses > that iirc) and describes pretty accurately what these kind of processes > are used for, i.e. transient, temporary, short-running processes? Other > suggestions? 'function' 'oneshot' 'single' 'not-respawning' (None of these are necessarily good.) > Two Examples: the audit policy loading is something for Type=finish, > since the process "audictl" which does this starts and ends during boot > and does not stay around during system runtime. You probably want to run > it before you run auditd and as a dependency of it, but it probably > makes sense to run it again if auditd terminates and you restart it > later on. So this would be something to set to "Type=finish" and > "ValidNoProcess=no". And it would *not* show up as "active" in systemctl > during normal system runtime, because when the processes exited the > service in systemd went away too. I'd think you'd just run that as ExecStartPre in your auditd service. Perhaps that's not the best example? > So, I guess what I want to say is that processes have different > semantics, and there is not clear dichotomy available. And because of > that I'd wrap all this in one unit, and then differentiate them via > Type= into the different styles. > > Does that make sense to you? I think it might still make sense to separate them. You'd have other benefits by distinguishing them: - Separate defaults that make sense (Restart=on-success for services, Restart=once (or not even a valid option) for tasks) - Separated reporting, if you wanted (the random example above could be considered as 'finished' instead of 'active/exited'.) This may not fit fully into how systemd is organized. > (Oh, and if you have a better suggestion for a name of ValidNoProcess= I > am all ears too!) Well, the neat thing about splitting off task and service like this is that that key goes away. Bill _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel