1 |
On Mon, 19 Mar 2012 18:58:22 -0400 |
2 |
"Walter Dnes" <waltdnes@××××××××.org> wrote: |
3 |
|
4 |
> On Mon, Mar 19, 2012 at 12:35:26AM +0200, Alan McKinnon wrote |
5 |
> |
6 |
> > > systemd is like Captain Picard of STTNG (Start Trek The Next |
7 |
> > > Generation) always saying "make it so". *HOW DO YOU "MAKE IT SO"? |
8 |
> > > That intelligence has to be somewhere. So what alternative do you |
9 |
> > > propose? A bash or ash script is more guaranteed to run than a |
10 |
> > > binary. Shoving all that "intelligence" into the service itself, |
11 |
> > > means that the service has to start up in order to determine |
12 |
> > > whether it's safe for the service to start up. What's wrong with |
13 |
> > > this picture? |
14 |
> > |
15 |
> > The intelligence goes in the init system's config file for that |
16 |
> > service of course. I know I didn't clearly say so, but that's where |
17 |
> > it goes. |
18 |
> |
19 |
> The config file can specify upper/lower limits, variables, settings, |
20 |
> etc, etc. But in the end, some executable somewhere is going to have |
21 |
> to parse the config file, check the actual environment, and decide |
22 |
> whether or not to launch the service, and with what parameters. |
23 |
> |
24 |
> Note also that many open source programs are multiplatform. I.e. |
25 |
> they run on FreeDOS with DJGPP, multiple flavours of Windows, |
26 |
> multiple BSDs (including Apple), linux, and multiple commercial unix |
27 |
> flavours. Do you really want to throw multiple platform-specific |
28 |
> IFDEFs into the program code to allow the services to do the |
29 |
> appropriate platform-specific initialization? Isn't it be easier to |
30 |
> move the service setup out of the main service, and let the |
31 |
> maintainers of the specific platforms figure it out? |
32 |
> |
33 |
> One last question. Let's go back in time 20 years, and assume that |
34 |
> you're the maintainer for a program that runs as a service. A small |
35 |
> handfull of end-users come along. They're running a "hobby OS" that |
36 |
> fits on a couple floppies. Said "hobby OS" has been cobbled together |
37 |
> by a university student. Would you... |
38 |
> * download that university student's hobby OS, and install it |
39 |
> * throw in a bunch of additional IFDEF initialization code in your |
40 |
> program |
41 |
> * test and debug the program to make sure it runs under that OS |
42 |
> |
43 |
|
44 |
I'm not sure where you're going with this. We're discussing an init |
45 |
system and good, simple ways to start services. App maintainers are |
46 |
going to continue to do whatever they feel they ought to do, some might |
47 |
write the systemd files, some might not - that is what already |
48 |
happens. Someone has to write it and what goes in it depends on what |
49 |
the app code does, not the other way round. |
50 |
|
51 |
I'm not punting the merits of systemd, I don;t know enough about it. I |
52 |
started off by saying a nice clean easy way to do init would be |
53 |
awesome, as I'm sick and tired of having to deal with sysvinit. That's |
54 |
all, don't read more into it than that. |
55 |
|
56 |
As for the last question, I really have no idea where you're taking |
57 |
this. I don't know the answer, I've never been a maintainer in that |
58 |
position. Being the arrogant shit that I am, I reckon I would probably |
59 |
tell the user to piss off and I don't support hobby crap. But hey, |
60 |
that's just what I think I might say while sitting here on my couch. |
61 |
Any other answer would be equally made up. |
62 |
|
63 |
-- |
64 |
Alan McKinnnon |
65 |
alan.mckinnon@×××××.com |