]> git.ipfire.org Git - thirdparty/dracut.git/blob - test/TEST-50-MULTINIC/server-init.sh
fix(test): use bash for jobs -r parameter
[thirdparty/dracut.git] / test / TEST-50-MULTINIC / server-init.sh
1 #!/bin/bash
2 exec < /dev/console > /dev/console 2>&1
3 set -x
4 export PATH=/usr/sbin:/usr/bin:/sbin:/bin
5 export TERM=linux
6 export PS1='nfstest-server:\w\$ '
7 : > /dev/watchdog
8 stty sane
9 echo "made it to the rootfs!"
10 echo server > /proc/sys/kernel/hostname
11
12 wait_for_if_link() {
13 local cnt=0
14 local li
15 while [ $cnt -lt 600 ]; do
16 li=$(ip -o link show dev "$1" 2> /dev/null)
17 [ -n "$li" ] && return 0
18 sleep 0.1
19 cnt=$((cnt + 1))
20 done
21 return 1
22 }
23
24 wait_for_if_up() {
25 local cnt=0
26 local li
27 while [ $cnt -lt 200 ]; do
28 li=$(ip -o link show up dev "$1")
29 [ -n "$li" ] && return 0
30 sleep 0.1
31 cnt=$((cnt + 1))
32 done
33 return 1
34 }
35
36 wait_for_route_ok() {
37 local cnt=0
38 while [ $cnt -lt 200 ]; do
39 li=$(ip route show)
40 [ -n "$li" ] && [ -z "${li##*"$1"*}" ] && return 0
41 sleep 0.1
42 cnt=$((cnt + 1))
43 done
44 return 1
45 }
46
47 linkup() {
48 wait_for_if_link "$1" 2> /dev/null && ip link set "$1" up 2> /dev/null && wait_for_if_up "$1" 2> /dev/null
49 }
50
51 wait_for_if_link enx525401123456
52
53 ip addr add 127.0.0.1/8 dev lo
54 ip link set lo up
55 ip addr add 192.168.50.1/24 dev enx525401123456
56 linkup enx525401123456
57
58 : > /dev/watchdog
59 modprobe af_packet
60 : > /dev/watchdog
61 modprobe sunrpc
62 : > /dev/watchdog
63 mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs
64 : > /dev/watchdog
65 [ -x /sbin/portmap ] && portmap
66 : > /dev/watchdog
67 mkdir -p /run/rpcbind
68 [ -x /sbin/rpcbind ] && rpcbind
69 : > /dev/watchdog
70 modprobe nfsd
71 : > /dev/watchdog
72 mount -t nfsd nfsd /proc/fs/nfsd
73 : > /dev/watchdog
74 exportfs -r
75 : > /dev/watchdog
76 rpc.nfsd
77 : > /dev/watchdog
78 rpc.mountd
79 : > /dev/watchdog
80 command -v rpc.idmapd > /dev/null && [ -z "$(pidof rpc.idmapd)" ] && rpc.idmapd
81 : > /dev/watchdog
82 exportfs -r
83 : > /dev/watchdog
84 mkdir -p /var/lib/dhcpd
85 : > /var/lib/dhcpd/dhcpd.leases
86 : > /dev/watchdog
87 chmod 777 /var/lib/dhcpd/dhcpd.leases
88 : > /dev/watchdog
89 rm -f /var/run/dhcpd.pid
90 dhcpd -d -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases &
91 exportfs -s
92 echo "Serving NFS mounts"
93 while :; do
94 [ -n "$(jobs -rp)" ] && : > /dev/watchdog
95 sleep 10
96 done
97 mount -n -o remount,ro /
98 poweroff -f