pcp
[Top] [All Lists]

Re: [pcp] openSUSE 12.1 gripes

To: David Disseldorp <ddiss@xxxxxxx>
Subject: Re: [pcp] openSUSE 12.1 gripes
From: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Thu, 01 Dec 2011 06:25:07 +1100
Cc: Mark Goodwin <mgoodwin@xxxxxxxxxx>, pcp@xxxxxxxxxxx
In-reply-to: <20111130155334.28a625da@xxxxxxxxxx>
References: <1322186699.26292.15.camel@xxxxxxxxxxxxxxxx> <20111125134917.123c80b9@xxxxxxxxxx> <4ED31AD3.9000701@xxxxxxxxxx> <20111130155334.28a625da@xxxxxxxxxx>
On Wed, 2011-11-30 at 15:53 +0100, David Disseldorp wrote:

I'll leave it to Mark and David to work through the rpm spec issues.

> > 
> > Also, Fedora-15 and later use systemd, but don't have the same
> > issues that Ken reported with legacy init script output being
> > redirected to systemctl and then onto syslog by default. I guess
> > systemd and systemctl on SuSE must have different default settings
> > somewhere ..?
> 
> Interesting, I'll do some hunting here to find out what's going on here.

I've made some progress on this.

systemd and systemctl appear to work _exactly_ the same way for BOTH
openSUSE 12.1 and Fedora 16 ... and I have been unable to find any way
to force the classical behaviour of stdout and stderr _not_ being
redirected.

But the difference is because SUSE provides /etc/rc.status and we
conditionally "source" /etc/rc.status if it exists in
$PCP_SHARE_DIR/lib/rc-proc.sh which is "sourced" in all the PCP rc
scripts.  And /etc/rc.status in openSUSE 12.1 intercepts the execution
of the rc script and passes control to systemctl ... hence the different
behaviour.

Since the pixies responsible for systemd and systemctl apparently do not
consider the classical behaviour important enough to be retained (or
perhaps the configuration spell needed to do this remains a tightly
guarded secret), I am proposing a gross hack in the form of an
environment variable (known only to PCP QA and
$PCP_SHARE_DIR/lib/rc-proc.sh) that stops /etc/rc.status being
sourced ... this will save the QA bacon.

For completeness I plan to change QA to use $PCP_RC_DIR/pcp restart in
all the places where that is semantically more correct than the
$PCP_RC_DIR/pcp start we've been using for both start and restart
operations (this is another fallout of systemd's use of current state to
change the semantics for rc scripts, and although I'm avoiding systemd
in PCP QA, this change seems "the right thing" (tm) to do).

I am still left with the issue of QA 067 causing a total system freeze
when run using systemctl/systemd ... I'll get to that when I've made the
other changes described above.

<Prev in Thread] Current Thread [Next in Thread>