Mercurial > vanilla
annotate core/rc/rc.networking @ 1030:80725fa0f064
kde/kded: initial import, closes #1801
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 30 Aug 2019 13:18:07 +0200 |
parents | 58211c615a8c |
children | 4088afe6988e |
rev | line source |
---|---|
630
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 #!/bin/sh |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # /etc/rc.init -- basic networking script |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # Copyright (c) 2019 David Demelier <markand@malikania.fr> |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # Permission to use, copy, modify, and/or distribute this software for any |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # purpose with or without fee is hereby granted, provided that the above |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # copyright notice and this permission notice appear in all copies. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 # This script is provided mostly for static configuration and/or more complex |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 # scenarios where the system administrator requires full control over the |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 # networking interfaces. Most people would prefer using dhcpcd for simple |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 # configurations or NetworkManager on desktop systems. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 # The file /etc/rc.networking allows you to define functions for each interface |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 # and will automatically call "start" and "stop" at boot and shutdown |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 # respectively. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 # See below for basic examples and uncomment the appropriate one. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 if [ -f /etc/rc.conf ]; then |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 . /etc/rc.conf |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 fi |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 lo() |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 { |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 echo "Setting network interface: lo" |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 case $1 in |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 "start") |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 ip link set dev lo up |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 ip addr add 127.0.0.1/8 dev lo |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 ip -6 addr add ::1/128 dev lo |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 ;; |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 "stop") |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 ip -6 addr del ::1/128 dev lo |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 ip addr del 127.0.0.1 dev lo |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 ip link set dev lo down |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 ;; |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 esac |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 } |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 # Example 1: static IP on eth0 interface. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 # eth0() |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 # { |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 # echo "Setting network interface: eth0" |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 # case $1 in |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 # "start") |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 # ip link set eth0 up |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 # ip addr add 192.168.0.1 dev eth0 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 # ;; |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 # "stop") |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 # ip addr del 192.168.0.1 dev eth0 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 # ip link set eth0 down |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 # ;; |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 # esac |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 # } |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 usage() |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 { |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 echo "usage: $(basename $0) start|stop [interface]" 1>&2 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 exit 1 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 } |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 if [ $# -eq 0 ]; then |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 usage |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 # NOTREACHED |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 fi |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 case $1 in |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 "start"|"stop") |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 # If no interface is given, iterate over all defined in |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 # INTERFACES from /etc/rc.conf. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 # |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 if [ $# -eq 1 ]; then |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 for iface in $INTERFACES; do |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 $iface $1 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 done |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 else |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 $2 $1 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 fi |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 ;; |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 *) |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 usage |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 # NOTREACHED |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 ;; |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 esac |