On Sun, Dec 21, 2014 at 10:32:07PM +0100, Sven Joachim wrote: > On 2014-12-21 21:58 +0100, Rob Owens wrote: > > > The /etc/init.d/mysql script on one of my systems is complaning that it > > can't find /bin/dirname and /bin/basename. Line 24 of the script is > > this: > > > > SELF=$(cd $(dirname $0); pwd -P)/$(basename $0) > > > > Both dirname and basename live in /usr/bin, not /bin. > > Which should be fine from the script's point of view as long as > $remote_fs is in the "Required-Start" header (i.e. /usr is guaranteed to > be mounted). > It is. In any case, /usr is part of the / partition. In case it matters, /var is a separate partition. And I'm using software raid 1 for both / and /var.
> > I know I could add a PATH statement to the init script, but this problem > > is my own doing and I'd like to fix it right. I "cross-graded" this > > system from 32-bit to 64-bit using this guide: > > > > www.ewan.cc/?q=node/90 > > > > It worked pretty well, but not perfectly. Some things got missed, like > > screen, ntp, and a couple other packages. I'm thinking that maybe > > another missing package is preventing the mysql init script from > > checking for /usr/bin/dirname. > > That seems to be unlikely, but you could add a line with "echo $PATH" to > the script to find out what PATH actually is. > I will do this, but I can't reboot just yet to check it out. I will post my findings later. > > I can run '/etc/init.d/mysql start' from a terminal and it works fine, > > because it picks up the PATH associated with the terminal. So this is > > only a boot-time issue. > > > > So is there a package or a global setting somewhere that sets the PATH > > for init scripts? > > PATH is set directly by init. If I read the source code correctly, > sysvinit sets it to "/sbin:/usr/sbin:/bin:/usr/bin" while systemd uses > "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin". > This is a Wheezy system, running with sysvinit. 'man init' says: ENVIRONMENT Init sets the following environment variables for all its children: PATH /bin:/usr/bin:/sbin:/usr/sbin So maybe it's not a path issue after all. What else could it be then? The boot messages clearly indicate that it's failing to find /bin/dirname and /bin/basename. Thanks for your help. -Rob
signature.asc
Description: Digital signature