สิ่งที่เปลี่ยนแปลงคือพวกเขาไม่ต้องการให้คุณ "ตีกลับ" เครือข่ายอีกต่อไป หยุดและเริ่มต้นยังคงทำงาน รีสตาร์ทไม่ทำงานอีกต่อไป ฉันแค่ "แก้ไข" ปัญหา "นี้" นั่นคือการบอกว่าฉันได้รับพฤติกรรมเดิม ในการเปลี่ยนกลับเป็นพฤติกรรมก่อนหน้า: ใช้ไฟล์ 13.10 /etc/init/networking.conf และแทนที่ไฟล์ 14.04 ด้วย (แก้ไข: ชี้แจงซึ่งแทนที่ซึ่ง)
กระบวนการมีลักษณะดังนี้:
(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#
ทำสิ่งเดียวกันสำหรับสคริปต์ /etc/init.d/networking ซึ่งเป็นสิ่งที่ไฟล์ /etc/init/networking.conf อ้างอิง / เรียกใช้
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).
เห็นได้ชัดว่ามีเหตุผลที่พวกเขาวางทางออกป้องกันไว้ที่นั่น แต่พวกเขาไม่สนใจที่จะแสดงสิ่งที่เกิดขึ้นได้ดีมาก
รายการจะเข้าสู่ /var/log/upstart/networking.log เมื่อคุณลองซึ่งมีลักษณะดังนี้:
Stopping or restarting the networking job is not supported.
Use ifdown & ifup to reconfigure desired interface.
แต่พวกเขาสามารถ / ควรมีผลลัพธ์ที่เป็นข้อความโต้ตอบเมื่อคุณลองเริ่มบริการเครือข่าย อ่าดี คิดออกและแม้แต่การทำงานแบบเก่า ๆ
แก้ไข: ฉันได้พบสิ่งนี้ทำให้เกิดการเรียกใช้สคริปต์โดยไม่ได้ตั้งใจซึ่งควบคุมโดย /etc/init/failsafe.conf ซึ่งไม่เป็นที่พึงปรารถนาเนื่องจากมันทำให้เกิดการหน่วงเวลา 120 วินาทีในการบู๊ตทุกครั้ง ... ปัญหาที่การปรากฏตัวของความล่าช้านี้จะบ่งบอกถึง แต่มันก็แสดงอยู่ตลอดเวลา (เช่นสายเคเบิลที่ไม่ได้เสียบซึ่งอนุญาตให้เข้าถึงการแชร์ไฟล์เครือข่ายที่แมปใน / etc / fstab เป็นต้น)
ไม่ว่าในกรณีใดฉันจะคิดออกว่าอะไรเป็นสาเหตุของการทำเช่นนี้จะเป็นการกดปุ่มหมดเวลาและโพสต์การแก้ไขเมื่อฉันพบมัน