This might be a bit of a confused question…
I’ve recently started playing around with docker and am trying to setup a basic lamp server.
I have a docker image of centos with httpd, php, and mysql.
However, in a docker container I can’t start services in the way I would usually do via systemd / service.
I can get httpd running directly via /usr/sbin/httpd
So then what if any is the difference in running httpd via /usr/sbin/httpd
rather than via systemctl start httpd
?
Is there a ‘proper’ way to stop or restart httpd? – I thought I could just kill the process but it appears to launch about 10 apache processes.
I appreciate this isn’t a particularly well focused question but any pointer to relevant material would be gratefully received.
Answer
You cannot use systemctl
If your PID 1 is not systemd. You can find your PID 1 with ps -q 1
.
Being able to start and stop services the normal way is one advantage mentioned in this article about Running systemd in a non-privileged container. Others are logging or tracking of child processes as described in Andrei’s answer.