Ubuntu 14.04'te ne sudo service networking restart
ne de sudo /etc/init.d/networking restart
artık bir şey yapmıyor. Ayrıca her ikisi de 1 kodu ile çıkmaktadır. Belli ki bir şeyler değişmiş (ya da yarı değişmiş) ama ne olduğunu bulamıyorum. Bu açıkça uzaktan ağ yeniden yapılandırması ve Ansible gibi araçlarla ilgili sorunlara neden oluyor.
$ sudo bash -x /usr/sbin/service networking restart
[sudo] password for wirehive:
++ basename /usr/sbin/service
+ VERSION='service ver. 0.91-ubuntu1'
++ basename /usr/sbin/service
+ USAGE='Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]'
+ SERVICE=
+ ACTION=
+ SERVICEDIR=/etc/init.d
+ OPTIONS=
+ '[' 2 -eq 0 ']'
+ cd /
+ '[' 2 -gt 0 ']'
+ case "${1}" in
+ '[' -z '' -a 2 -eq 1 -a networking = --status-all ']'
+ '[' 2 -eq 2 -a restart = --full-restart ']'
+ '[' -z '' ']'
+ SERVICE=networking
+ shift
+ '[' 1 -gt 0 ']'
+ case "${1}" in
+ '[' -z networking -a 1 -eq 1 -a restart = --status-all ']'
+ '[' 1 -eq 2 -a '' = --full-restart ']'
+ '[' -z networking ']'
+ '[' -z '' ']'
+ ACTION=restart
+ shift
+ '[' 0 -gt 0 ']'
+ '[' -r /etc/init/networking.conf ']'
+ which initctl
+ grep -q upstart
+ initctl version
+ case "${ACTION}" in
+ stop networking
stop: Job failed while stopping
+ :
+ exec start networking
start: Job is already running: networking
Ubuntu 14.04 Server'da ağ bağlantısını uzaktan yeniden başlatmanın doğru yolu nedir?
Bunun bir "özellik" olduğu ortaya çıktı. Ubuntu Server'da bir arayüzü yeniden başlatmanın sadece desteklenen yolu sudo ifdown eth0 && sudo ifup eth0
https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1301015
Değişen şey, artık ağı "zıplatmanızı"istememeleri. durdurma ve başlatma hala çalışıyor. yeniden başlatma artık çalışmıyor. Bu "sorunu"çözdüm" yani eski davranışımı geri aldım. Önceki davranışa geri dönmek için: 13.10 /etc/init/networking.conf dosyasını alın ve 14.04 dosyasını bununla değiştirin. (düzenleme: hangisinin hangisinin yerine geçtiği açıklığa kavuşturuldu)
Süreç şu şekildedir:
(Just before this, I configured my /etc/network/interfaces for eth1 on a 192.168.117.x address)
"/etc/network/interfaces" 16L, 413C written
root@1404-Anode:~# service networking restart
stop: Job failed while stopping
start: Job is already running: networking
root@1404-Anode:~# echo "hmm, wth?"
hmm, wth?
root@1404-Anode:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:d6:a8:19
inet addr:192.168.115.105 Bcast:192.168.115.255 Mask:255.255.255.0
inet6 addr: 2002:4077:9050:1234:a08c:29c1:ce9b:a57b/64 Scope:Global
inet6 addr: fe80::20c:29ff:fed6:a819/64 Scope:Link
inet6 addr: 2002:4077:9050:1234:20c:29ff:fed6:a819/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:646 errors:0 dropped:0 overruns:0 frame:0
TX packets:531 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:58748 (58.7 KB) TX bytes:75465 (75.4 KB)
(lo removed here)
root@1404-Anode:~# cd /etc/init
root@1404-Anode:/etc/init# diff networking.conf.1310 networking.conf.1404
13c13
< and (stopped udevtrigger or container)) or runlevel [2345]
---
> and (stopped udevtrigger or container)) or runlevel [2345] or stopped networking >RESULT=failed PROCESS=post-stop EXIT_STATUS=100
16a17,20
> if [ "$UPSTART_EVENTS" = "stopped" ] && [ "$UPSTART_JOB" = "networking" ] && [ "$EXIT_STATUS" = "100" ]; then
> exit 0
> fi
>
21a26,31
> if [ -z "$UPSTART_STOP_EVENTS" ]; then
> echo "Stopping or restarting the networking job is not supported."
> echo "Use ifdown & ifup to reconfigure desired interface."
> exit 100
> fi
root@1404-Anode:/etc/init#
Aynı işlemi /etc/init.d/networking betiği için de yapın; /etc/init/networking.conf dosyası bu betiği referans alır/çağırır.
root@1404-Anode:/etc/init# cp networking.conf.1310 networking.conf
root@1404-Anode:/etc/init# cd ../init.d
root@1404-Anode:/etc/init.d# diff networking.1404 networking.1310
15d14
< STATEDIR="$RUN_DIR/state"
21a21,27
> # Make sure that it's clear to the user that they shouldn't use this
> # script under upstart
> if init_is_upstart; then
> echo "ERROR: Calling a sysvinit script on a system using upstart isn't supported. Please use the 'service' command instead."
> exit 1
> fi
>
52,54d57
< if ! chown root:netdev "$RUN_DIR" ; then
< log_warning_msg "can't chown $RUN_DIR"
< fi
160,162d162
< if init_is_upstart; then
< exit 1
< fi
166c166
< state=$(ifquery --state)
---
> state=$(cat /run/network/ifstate)
root@1404-Anode:/etc/init.d# cp networking.1310 networking
root@1404-Anode:/etc/init.d# service networking restart
networking stop/waiting
networking start/running
root@1404-Anode:/etc/init.d# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:d6:a8:19
inet addr:192.168.115.105 Bcast:192.168.115.255 Mask:255.255.255.0
inet6 addr: 2002:4077:9050:1234:a08c:29c1:ce9b:a57b/64 Scope:Global
inet6 addr: fe80::20c:29ff:fed6:a819/64 Scope:Link
inet6 addr: 2002:4077:9050:1234:20c:29ff:fed6:a819/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3398 errors:0 dropped:0 overruns:0 frame:0
TX packets:2545 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:318654 (318.6 KB) TX bytes:418804 (418.8 KB)
eth1 Link encap:Ethernet HWaddr 00:0c:29:d6:a8:23
inet addr:192.168.117.105 Bcast:192.168.117.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed6:a823/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:98 errors:0 dropped:58 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20055 (20.0 KB) TX bytes:1226 (1.2 KB)
(lo removed)
root@1404-Anode:/etc/init.d# echo "hah, it works! *8^)"
Hah, it works! *8^)
root@1404-Anode:/etc/init.d#
(note: the steps where I scp'd the 1310 versions into the 1404 system are omitted for brevity).
Açıkçası oraya bir savunma çıkışı koymalarının bir nedeni var, ancak neler olup bittiğini gerçekten iyi bir şekilde ortaya koyma zahmetine girmiyorlar.
Denediğinizde /var/log/upstart/networking.log dosyasına aşağıdaki gibi bir girdi girilir:
Stopping or restarting the networking job is not supported.
Use ifdown & ifup to reconfigure desired interface.
Ancak, servis ağını yeniden başlatmayı denediğinizde bunu gerçekten iletişim mesajı olarak verebilirlerdi / vermeliydiler. ah neyse. anladım ve hatta eski bir çözüm yolu buldum.
DÜZENLEME: Bunun /etc/init/failsafe.conf tarafından kontrol edilen betiğin istem dışı tetiklenmesine neden olduğunu fark ettim, bu da her açılışta 120 saniyelik bir zaman aşımı gecikmesine neden olduğu için istenmeyen bir durum... ayrıca belki de bu gecikmenin göründüğü gerçek yanlış yapılandırmaları/ağ sorunlarını maskeliyor olabilir, ancak zaten her zaman görünüyor. (örneğin, /etc/fstab'da eşlenen bir ağ dosya paylaşımına erişime izin veren takılı olmayan bir kablo)
Her halükarda, zaman aşımına neden olan şeyin ne olduğunu bulacağım ve bulduğumda bir düzeltme yayınlayacağım.