F15: Questions re systemd
R. G. Newbury
newbury at mandamus.org
Wed Jul 20 18:49:57 UTC 2011
> R. G. Newbury <newbury at mandamus.org> wrote:
>> > New install of F15 on Thinkpad X61. Httpd refuses to start using:
>> > systemctl enable httpd.service; systemctl start httpd.service
> Hmm, this works fine on my installation of F15. 'systemctl enable'
> redirects to 'chkconfig' because httpd uses systemd's SYSV
> compatibility, but both commands do what you expect.
>
>> >
>> > User:group apache:apache exists and 'owns' /var/www
>> >
>> > No httpd.service file was installed through yum. I created one containing:
> httpd still uses a SYSV initscript. systemd is completely compatible
> with them for the moment.
>
>> > **************************************
>> > # httpd.service for systemd
>> > # installed to /lib/systemd/system
> Please do not install or edit unit files in /lib/systemd. Changes in
> that directory can be overriden by package updates. Instead use
> /etc/systemd/system, either by creating new unit files in that
> directory or copying existing ones in /lib/systemd to /etc and editing
> them. Unit files in /etc/systemd always override identically named
> ones in /lib/systemd.
Well *that* explains why there was no httpd.service file!. But it does
not quite explain why 'status' reported a 'fail'. I will rsync the
desktop F14 /etc/sysconfig/httpd and /etc/rc.d/init.d/httpd files and
see what happens then, when I run 'service httpd restart'
>> > [Unit]
>> > Description=httpd daemon
>> > After=mysqld.service
> You probably want "network.target" in After too. (Although presumably
> mysqld has that in its After too.) If you use NetworkManager and bind
> httpd to particular IP addresses also add
> "NetworkManager-wait-online.service" to After as well, otherwise it
> might come up before it has a socket to bind to.
Since I do not need it, I'll delete this file. I'll wait for someone who
*knows* what is going on the write one!
>> >
>> > [Service]
>> > EnvironmentFile=-/etc/sysconfig/httpd
>> > ExecStart=/usr/sbin/httpd $OPTIONS -k start
>> > ExecReload=/usr/sbin/httpd $OPTIONS -k restart
>> > PIDFile=/run/httpd.pid
>> > Type=forking
> This might be your problem:
>
>> > User=apache
>> > Group=apache
> httpd probably needs to be launched as root and allowed to drop
> privileges on its own. (Don't quote me on this though; I don't know
> much about the internal workings of httpd.)
You could well be right. Httpd wants to own the files in /var/www/html
etc. but since it is launched on boot, root would be the correct user to
do that.
> One other thing that might affect it: if you bind httpd to particular
> IP addresses, it might require the network to be active
>
>> > [Install]
>> > WantedBy=multi-user.target
>> > ****************************************
>> >
>> > I only get 'Job failed. See system logs and 'systemctl status' for
>> > details'. ?[FAILED]
>> >
>> > Status details are no help. I added OPTIONS=" -e 3 -E
>> > /var/log/httpd/error_log -w" to /etc/sysconfig/httpd, which systemctl
>> > status says it is executing, but I get NO error_log entries.
>> >
>> > Moreover, I get NO systems logs of any sort from systemctl/systemd.
>> >
>> > FIRST QUESTION: Where are the system logs? ?I do NOT have a
>> > /var/log/messages file.... Do I need to set a logging option somewhere?
> systemd normally logs to syslog. You really should figure out why
> syslog isn't working first.
SOLVED that bit. Somehow I chconfig'd OFF, the rsyslog daemon while
turning off all the rpc stuff (it forwarded to systemctl)....Does sorta
help!
> That being said, you can force systemd to log elsewhere with the
> "systemd.log_target=" kernel argument. Set it to "kmsg" to log to the
> kernel message log or "console" to print errors on the console. You
> can also set "systemd.log_level=debug" to get lots more output out of
> systemd. More on these and a lot more at
> http://fedoraproject.org/wiki/How_to_debug_Systemd_problems
>
>> > SECOND QUESTION: If I use '/usr/sbin/httpd -k start', it works and I get
>> > httpd threads in the ps list.
>> > Service httpd status, at that point, says that the start FAILED.
>> > Service httpd stop does not actually stop anything, nor does systemctl
>> > httpd.service stop. ?(Does not know the pid?)
> Exactly. Systemd has no idea httpd was started, nor does it need to.
> It really shouldn't muck about with what the user didn't intend it to
> control.
Well yup! But I thought that it WAS controlling....What we have here is
a failure to communicate, as someone once said!
-
R. Geoffrey Newbury
More information about the users
mailing list