我在我的debian 7 / apache 2.2上遇到了一个问题
我不能ifdown我的接口eth0(服务器超时,我需要重新启动它)
当我做strace我看到一个SIGCHILD:
strace -e open ifdown eth0 open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3 open("/etc/network/interfaces", O_RDONLY) = 3 open("/run/network/ifstate", O_RDWR|O_CREAT|O_APPEND, 0666) = 3 open("/run/network/ifstate", O_RDWR|O_CREAT|O_APPEND, 0666) = 3 open("/run/network/.ifstate.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 open("/run/network/ifdown-eth0.pid", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3 open("/run/network/ifup-eth0.pid", O_RDONLY) = -1 ENOENT (No such file or directory) --- SIGCHLD (Child exited) @ 0 (0) ---
我的ifconfig:
eth0 Link encap:Ethernet HWaddr 02:00:97:50:85:77 inet adr:151.80.133.119 Bcast:151.80.133.255 Masque:255.255.255.0 adr inet6: fe80::97ff:fe50:8577/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7887 errors:0 dropped:0 overruns:0 frame:0 TX packets:3127 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:682530 (666.5 KiB) TX bytes:260205 (254.1 KiB) eth0:0 Link encap:Ethernet HWaddr 02:00:97:50:85:77 inet adr:37.187.234.165 Bcast:37.187.234.165 Masque:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth0:1 Link encap:Ethernet HWaddr 02:00:97:50:85:77 inet adr:37.187.234.166 Bcast:37.187.234.166 Masque:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:300 (300.0 B) TX bytes:300 (300.0 B)
我的etc / network / interfaces文件:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 151.80.133.119 netmask 255.255.255.0 gateway 151.80.133.254 post-up /sbin/ifconfig eth0:0 37.187.234.165 netmask 255.255.255.255 broadcast 37.187.234.165 post-down /sbin/ifconfig eth0:0 down
我得到另一个奇怪的问题,当我重新启动服务器,我总是有:
(98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs Action 'start' failed.
所以我需要一个:netstat -ltnp | grep':80'并杀死进程。
我认为这些问题是相关的,但我不知道该怎么做。
任何人有一个想法? 谢谢
我不能ifdown我的接口eth0(服务器超时,我需要重新启动它)
closures接口将完全禁用它,包括任何子接口(如服务器上的eth0:0
和eth0:1
) – 就像将networking电缆拉出机器一样。 ifdown
正常工作,但你没有看到它完成,因为服务器无法与您沟通!
不要在用于连接到计算机的接口上运行ifdown
。
当你运行netstat -ltnp | grep ':80'
netstat -ltnp | grep ':80'
它应该显示哪个进程正在该端口上运行。 找出该进程是什么,然后摆脱启动时初始化它的内容。
或者在Apache中,你是否有多个listen指令被configuration为绑定到相同的端口? grep Listen /etc/apache2/ports.conf
– 应该只有一个端口80列出。
这只是一个猜测,但你可能试图运行nginx以及apache。 我怀疑nginx,因为我在eth0上看到两个虚拟端口和IP。 此外,你已经使用的端口80的错误也指向了这一点。
如果是这种情况,请禁用或卸载其中的一个。