On 7/22/2018 5:13 PM, Dave wrote:


On 07/22/2018 10:59 AM, john doe wrote:
On 7/22/2018 4:48 PM, Dave wrote:
On 07/22/2018 10:39 AM, john doe wrote:
On 7/22/2018 4:08 PM, Dave wrote:


On 07/22/2018 09:17 AM, john doe wrote:
On 7/22/2018 2:57 PM, Dave wrote:


On 07/22/2018 02:14 AM, john doe wrote:
On 7/21/2018 11:22 PM, Dave wrote:


On 07/21/2018 11:38 AM, john doe wrote:
On 7/21/2018 3:46 PM, Dave wrote:


On 07/21/2018 08:42 AM, mick crane wrote:
On 2018-07-21 13:00, john doe wrote:
On 7/21/2018 11:21 AM, mick crane wrote:
On 2018-07-21 09:56, mick crane wrote:
On 2018-07-21 09:39, john doe wrote:

my interfaces file is identical and apache starts OK so it is probably something else.
in /lib/systemd/system/apache2.target

do you have the "after" bit

       1 [Unit]
       2 Description=The Apache HTTP Server
       3 After=network.target remote-fs.target nss-lookup.target


Or looking if "NetworkManager-wait-online.service" is enabled. For systemd-networkd that is : "systemd-networkd-wait-online.service".

https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

If your '/etc/network/interfaces' file is empty with the exception of the 'lo' interface, your interfaces are probably handled by an other "program" and you need to determine which "program" is responsible for
your interfaces.

I'm quite cheerful as everything seems to be working but it wouldn't
hurt to find out and may assist OP.

Appologies for the confusion, I read your answer and think I could add
to it but was not in anycase directed towards you! :)

Yes, my comment was for the OP (taking into account other answers he
has sent to the list).

looking at links you posted if I was OP I would probably try adding

After=network-online.target
Wants=network-online.target

to  /lib/systemd/system/apache2.target

and see if apache starts at boot

mick

hello - my Deb 9.4 / Apache 2.4 has no file called apache2.target, however there is a /lib/systemd/system/apache2.service file:: the contents as follows
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
PrivateTmp=true
Restart=on-abort

[Install]
WantedBy=multi-user.target
root@culser:/lib/systemd/system#



Ok -- lets try:

Undo any changes in '/etc/network/interfaces'.

As root:

$ mkdir -p /etc/systemd/apache2.d
$ printf "%s\n%s\n" "After=network-online.target" "Wants=network-online.target" > /etc/systemd/apache2.d/boot-args.conf

Then try:

$ systemctl enable NetworkManager-wait-online
$ systemctl reboot

If it is not working:

$ systemctl disable NetworkManager-wait-online.service
$ systemctl enable systemd-networkd-wait-online.service
$ systemctl reboot


Note that the lines starting with a '$' are commands and should be entered on one line.

https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
https://www.freedesktop.org/software/systemd/man/systemd.unit.html


I tried both those options, apache2 does not start at boot.
the contents of /boot-args.conf is as follows:

After=network-online.target
Wants=network-online.target

To check if apache is running after boot i check the /var/run/apache2.pid file is present. it is not present.
I also use ps -e | grep apache  and nothing is returned.






After a reboot what output do  you get:

$ systemctl status apache2


after boot or reboot the systemctl cmd prints the following:

● apache2.service - The Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)     Active: failed (Result: exit-code) since Sun 2018-07-22 08:55:17 EDT; 51s ago    Process: 588 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

Jul 22 08:55:17 culser systemd[1]: Starting The Apache HTTP Server... Jul 22 08:55:17 culser apachectl[588]: (99)Cannot assign requested address: AH00072: make_sock: coul Jul 22 08:55:17 culser apachectl[588]: no listening sockets available, shutting down
Jul 22 08:55:17 culser apachectl[588]: AH00015: Unable to open logs
Jul 22 08:55:17 culser apachectl[588]: Action 'start' failed.
Jul 22 08:55:17 culser apachectl[588]: The Apache error log may have more information. Jul 22 08:55:17 culser systemd[1]: apache2.service: Control process exited, code=exited status=1 Jul 22 08:55:17 culser systemd[1]: Failed to start The Apache HTTP Server. Jul 22 08:55:17 culser systemd[1]: apache2.service: Unit entered failed state. Jul 22 08:55:17 culser systemd[1]: apache2.service: Failed with result 'exit-code'.




Is it properly starting if you do?:

$ systemctl start apache2
$/usr/sbin/apachectl start

If you get any errors it is most likely that the issue lies in Apache's configuration.

John,

After boot - systemctl start apache2, gets no errors.
ps -e shows apache2 is running.
/var/run/apache.pid is present.

systemctl status apache2 produces the following:

● apache2.service - The Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)     Active: active (running) since Sun 2018-07-22 10:02:57 EDT; 47s ago    Process: 1518 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
  Main PID: 1522 (apache2)
     Tasks: 6 (limit: 4915)
    CGroup: /system.slice/apache2.service
            ├─1522 /usr/sbin/apache2 -k start
            ├─1523 /usr/sbin/apache2 -k start
            ├─1524 /usr/sbin/apache2 -k start
            ├─1525 /usr/sbin/apache2 -k start
            ├─1526 /usr/sbin/apache2 -k start
            └─1527 /usr/sbin/apache2 -k start

Jul 22 10:02:57 culser systemd[1]: Starting The Apache HTTP Server...
Jul 22 10:02:57 culser systemd[1]: Started The Apache HTTP Server.

I am still baffled as to why apache2 will not start automatically when booting.

I can run apache2 -k start/restart  systemctl start apache2 manually after boot, but i may forget to do this. many installations such as php, mysql depend on seeing the apache2.pid file.



A poorly and temporary work around could be to add in '/etc/rc.local' the command:

$ systemctl restart apache2

What is the output of:

$ systemctl status systemd-networkd
$ systemctl status NetworkManager

In the apache configuration, as pointed out by others on this list, you use some options to bind to a specific address. It would be interesting to remove those options and see how it goes; that is clearly the issue at hand.

Some hints (look at what the command does and the inplication of executing that command):

- $ dpkg-reconfigure apache2
- Understanding what is configuring your interfaces (which "prg") is paramount.

Hopefully others on the list will jump in because I'm running out of ideas.

the output of:
systemctl status systemd-networkd
● systemd-networkd.service - Network Service
    Loaded: loaded (/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: enabled)
    Active: inactive (dead)
      Docs: man:systemd-networkd.service(8)

The output of:
systemctl status NetworkManager
● NetworkManager.service - Network Manager
    Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)     Active: active (running) since Sun 2018-07-22 10:42:56 EDT; 2min 51s ago
      Docs: man:NetworkManager(8)
  Main PID: 574 (NetworkManager)
     Tasks: 4 (limit: 4915)
    CGroup: /system.slice/NetworkManager.service
            ├─574 /usr/sbin/NetworkManager --no-daemon
            └─818 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /var/run/dhclie

Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0341] dhcp4 (enp5s0):   domain name Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0341] dhcp4 (enp5s0): state changed Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0359] device (enp5s0): state change: Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0372] device (enp5s0): state change: Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0377] device (enp5s0): state change: Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0378] manager: NetworkManager state Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0397] manager: NetworkManager state Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0398] policy: set 'Wired connection Jul 22 10:42:59 culser NetworkManager[574]: <info> [1532270579.0418] device (enp5s0): Activation: s Jul 22 10:43:03 culser NetworkManager[574]: <info> [1532270583.9253] manager: startup complete



For now do:
$ systemctl disable systemd-networkd-wait-online
$ systemctl disable NetworkManager-wait-online
$ rm -r /etc/systemd/apache2.d
Only the lo interface should be listed in /etc/network/interfaces or associated files (empty directory /etc/network/interfaces.d)
$ systemctl enable NetworkManager-wait-online
$ systemctl reboot

Finger crossed! :-p


you running out of ideas ? never, your a linux expert compared to me.

I have been coping as many as i can who previously contributed to see if maybe someone will have the answer.

Unfortunately, the systemctl disable collection of commands did not work

What let you think that didn't work (any error) or you mean that it didn't solve your issue?

after reboot.

Ok -- If you don't mind doing those 2 followed by a reboot:

$ mkdir -p /etc/systemd/apache2.d
$ printf "%s\n%s\n" "After=network-online.target" "Wants=network-online.target" > /etc/systemd/apache2.d/boot-args.conf

the /etc/network/interfaces.d is empty.

i can't imagine why Deb, is not automatically configuring apache2 to auto start, a well know server for 10+ years and yet it seems in my case it was not configured properly.


The service is properly starting at boot, you ask your apache server to bind to an Ip address that is not configured when the service starts.

Lets say that your dhcp server is giving you the IP 172.19.234.253, you tell apache to only listen on that IP but at boot that IP is not yet assigned to your interface.

Basically, you have two option:

1)  Do not bind to a specific IP in apache config
2) Insure that the interface is configured before starting apache (NetworkManager-wait-online should do that)

That is my understanding of your issue.

--
John Doe

Reply via email to