[Mageia-dev] systemd and non-systemd services question

Colin Guthrie mageia at colin.guthr.ie
Thu Sep 27 18:26:28 CEST 2012


'Twas brillig, and Frank Griffin at 27/09/12 16:23 did gyre and gimble:
> I have a cauldron system with the Oracle Express Edition (oracle-xe) RPM
> installed.  This has worked nicely in the past, with the simple change
> that the /etc/init.d/oracle-xe script needs to have LSB headers added.
> 
> I don't start the DB automatically at boot, but only when I need it for
> testing.  Based on the creation date of the files in its log directory,
> the last time it started was Aug 3.
> 
> The database no longer starts.  Running the sysv script produces the
> message "Starting oracle-xe (via systemctl)", and produces no errors,
> but nothing happens.  "systemctl list-units | grep oracle" shows the
> status of oracle-xe.service as "loaded active exited", but no Oracle log
> file is created.  Moreover, there is no oracle-xe.service file anywhere
> on my root partition.
> 
> Issuing "systemctl start oracle-xe.service" issues no output. Running it
> under strace shows an execve for /bin/systemctl, and later on an execve
> for /usr/bin/systemd-tty-ask-password-agent, but very little else, and
> nothing that even hints at actually trying to execute any oracle code.
> 
> It seems like sometime after Aug 3 systemd changed in some way as to
> cause the failure.  The system was built (and the oracle-xe rpm
> installed) on Aug 2, and never gets touched after install (and the
> addition of LSB headers).   I haven't had to start it for a while, so I
> can't get it more precise than that.
> 
> Any idea how to diagnose this ?  Does systemd keep logs anywhere ?

Yeah there are logs everywhere :)

Provided you are root, "systemctl status oracle-xe.service" will show
you the last few lines of log.

What is interesting here tho', is that it's asking you for a password.

Keep in mind that when running under strace, systemctl will be
contacting PID 1 and asking it to start the service for you so you won't
see any direct attempts to to start your service.

You can also look in the journal. If you want all logs related to a
particular unit you can do: "journalctl _SYSTEMD_UNIT=oracle-xe.service"
but it might be your issue is actually more related to the process of
starting it rather than actually starting it.

So in this case you maybe want to just turn up systemd debug logging to
maximum (see man systemd for the numerous ways to do this, via kernel
command line, config option or even sending a signal with kill at
runtime SIGRTMIN+22 is probably what you want).

Then run journalctl -f in one shell and try and start the service in
another.

Col

-- 

Colin Guthrie
colin(at)mageia.org
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/


More information about the Mageia-dev mailing list