'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/
