From: roy b. <roy...@ya...> - 2010-05-11 14:28:06
|
Serge, If I just add the commands I need to the specific init.d scripts, then it will solve my issues but it also means I will need to edit and maintain these scripts each time I upgrade to the next version of DL. If I need to apply patches to any of my modified init.d scripts (from mantis for example), I will need to remove my changes, patch and then reapply my changes. I was trying to think about more of a global solution. If this is an issue for me then I always try to consider if it might be an issue for others. Devil-Linux is different from, say, RHEL / Centos / Fedora, because the machine is partially stateless. The etc-mods.tar.bz2 config file only handles etc (and root) but not the other parts of the system - this design is really good for firewalls and other security devices. I have given some thought concerning a more global implementation for my suggestions, so here goes: 1) New subdirs are created eg: /etc/init.d/local-scripts/start/pre /etc/init.d/local-scripts/start/post /etc/init.d/local-scripts/stop/pre /etc/init.d/local-scripts/stop/post 2) Each init.d script is modified along these lines (I based this on /etc/init.d/skeleton): start) [ -d /etc/init.d/local-scripts/start/pre/$0 ] && /usr/bin/run-parts /etc/init.d/local-scripts/start/pre/$0 # Existing Start code [ -d /etc/init.d/local-scripts/start/post/$0 ] && /usr/bin/run-parts /etc/init.d/local-scripts/start/post/$0 ;; stop) [ -d /etc/init.d/local-scripts/stop/pre/$0 ] && /usr/bin/run-parts /etc/init.d/local-scripts/stop/pre/$0 # Existing Stop code [ -d /etc/init.d/local-scripts/stop/post/$0 ] && /usr/bin/run-parts /etc/init.d/local-scripts/stop/post/$0 ;; These proposals do *NOT* modify the existing behaviour of the current boot process in any way. The directory check is done on the ramdisk so there should be minimal performance impact. For my specific "lpd" problem, I would create a subdir "/etc/init.d/local-scripts/start/pre/lpd" and place any scripts here, naming them to set the run-parts ordering. To migrate my changes between DL Versions I would copy the entire contents of "/etc/init.d/local-scripts/", in the same way that I would copy any other specific configuration. I agree that some services may never need this, like beep, but I think this type of solution would work for me on lpd, squid, firewall and networking. Does anyone else need this type of configuration flexibility? Many Thanks, Roy Barnard --- On Mon, 10/5/10, Serge Leschinsky <fi...@in...> wrote: > From: Serge Leschinsky <fi...@in...> > Subject: Re: [Devil-linux-develop] Setting up directories in /var during boot. > To: dev...@li... > Cc: "roy barnard" <roy...@ya...> > Date: Monday, 10 May, 2010, 0:09 > On 05/08/2010 03:16 PM, roy barnard > wrote: > > Heiko, > > > > I have looked at that and it's still not perfect. > > I you need to stop and start a service like squid you > might also need to remember to stop and start the new > services created from skeleton. > > > > The default numbering of the rc3.d services makes it > tricky to insert the new services in the best places. > > > > It's better than my fudge (boot.local) but I still > wonder if there is any better option. > > > > If the run-parts idea is accepted I am happy to do the > work building all the patches. > > > > Roy, as far as I understand, you are resolving the issue > globally by adding a > new entity. It's OK if we have at least 2-3-4 services with > such prerequisites. > In your case the simplest way, I guess, is direct > modification of the init > script - start/stop sections. You can add any commands > there or invoke external > scripts. It's your idea but not global and applied to only > one service. > > Sincerely, > Serge > > > Roy > > > > --- On Fri, 7/5/10, Heiko Zuerker <he...@zu...> > wrote: > > > >> From: Heiko Zuerker <he...@zu...> > >> Subject: Re: [Devil-linux-develop] Setting up > directories in /var during boot. > >> To: dev...@li... > >> Date: Friday, 7 May, 2010, 19:49 > >> I think the simplest way would be to > >> just copy the /etc/init.d/skeleton > >> script and insert it into the runlevel wherever it > fits > >> best. > >> > >> Heiko > >> > >>> -----Original Message----- > >>> From: roy barnard [mailto:roy...@ya...] > >>> Sent: Thursday, May 06, 2010 3:52 PM > >>> To: devil linux-develop > >>> Subject: [Devil-linux-develop] Setting up > directories > >> in /var > >>> during boot. > >>> > >>> Hi, > >>> > >>> Can anyone help me with setting up directories > in /var > >> during boot? > >>> > >>> I have configured DL-1.4RC3 as a Print Server > using > >> LPRNG. > >>> To load the parallel port kernel driver I > added > >> "modprobe lp" to > >>> the boot.local file, which works fine. > >>> > >>> I then configured the printcap file, again > fine. > >>> I needed to create the directory > /var/spool/lpd/lp, > >> which I tried > >>> to do be putting "checkpc -f" in the > boot.local file > >> and let it > >>> automatically do this for me. > >>> > >>> This failed because the boot.local is executed > prior > >> to the > >>> hostname being set which "checkpc" needs. > >>> (my work around to put mkdir,chown and chmods > into > >> boot.local) > >>> > >>> Will the same issues happen when running > other > >> programs which > >>> expect new directories in /var ? > >>> > >>> Is there a rc.local file later in to boot > sequence I > >> have missed? > >>> > >>> I wonder if a better way forward would be to > have each > >> /etc/init.d > >>> scripts call PRE/POST start-up scripts using > >> run-parts. The same > >>> idea could be used for shutdown allowing > cleaning up > >> when a service > >>> shuts down. > >>> > >>> An other example for this would be if you need > to > >> download a proxy > >>> whitelist prior to squid starting but after > networking > >> is up. > >>> > >>> Many thanks, > >>> Roy Barnard > |