diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-11-19 22:05:49 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-11-19 22:05:49 +0000 |
commit | 369b48eadf00c84db2cb8b6524cd49190744a06f (patch) | |
tree | 5d97fbfc41a976fb60bbfa01ce004b52dd563b0d | |
parent | 70aca5974c480e7163a6275a5d5f3ea1e7681593 (diff) | |
download | nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.tar nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.tar.gz nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.tar.bz2 nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.tar.lz nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.tar.xz nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.tar.zst nixpkgs-369b48eadf00c84db2cb8b6524cd49190744a06f.zip |
* Start dhclient as an Upstart job.
svn path=/nixu/trunk/; revision=7078
-rw-r--r-- | test/boot-environment.nix | 6 | ||||
-rw-r--r-- | test/boot-stage-2-init.sh | 7 | ||||
-rw-r--r-- | test/boot-stage-2.nix | 3 | ||||
-rw-r--r-- | test/upstart-jobs/dhclient.nix | 29 |
4 files changed, 36 insertions, 9 deletions
diff --git a/test/boot-environment.nix b/test/boot-environment.nix index dcf29322139..a32ebd48c72 100644 --- a/test/boot-environment.nix +++ b/test/boot-environment.nix @@ -86,6 +86,11 @@ rec { (import ./upstart-jobs/syslogd.nix { inherit (pkgs) sysklogd; }) + + # DHCP client. + (import ./upstart-jobs/dhclient.nix { + dhcp = pkgs.dhcpWrapper; + }) ] # The terminals on ttyX. @@ -115,7 +120,6 @@ rec { nettools upstart; inherit upstartJobs; shell = pkgs.bash + "/bin/sh"; - dhcp = pkgs.dhcpWrapper; # Additional stuff; add whatever you want here. path = [ diff --git a/test/boot-stage-2-init.sh b/test/boot-stage-2-init.sh index 5f68fea82cd..96d92b1ba77 100644 --- a/test/boot-stage-2-init.sh +++ b/test/boot-stage-2-init.sh @@ -86,12 +86,7 @@ done modprobe af_packet for i in $(cd /sys/class/net && ls -d *); do echo "Bringing up network device $i..." - if ifconfig $i up; then - if test "$i" != "lo"; then - mkdir -p /var/state/dhcp - dhclient $i - fi - fi + ifconfig $i up done diff --git a/test/boot-stage-2.nix b/test/boot-stage-2.nix index 9b37d4cd6f3..a7d22c3fb79 100644 --- a/test/boot-stage-2.nix +++ b/test/boot-stage-2.nix @@ -1,6 +1,6 @@ { genericSubstituter, shell, coreutils, findutils , utillinux, kernel, udev -, module_init_tools, nettools, dhcp, upstart +, module_init_tools, nettools, upstart , path ? [] , # Whether the root device is root only. If so, we'll mount a @@ -22,7 +22,6 @@ genericSubstituter { udev module_init_tools nettools - dhcp upstart ]; extraPath = path; diff --git a/test/upstart-jobs/dhclient.nix b/test/upstart-jobs/dhclient.nix new file mode 100644 index 00000000000..8a5c4fe9a5f --- /dev/null +++ b/test/upstart-jobs/dhclient.nix @@ -0,0 +1,29 @@ +{dhcp}: + +{ + name = "dhclient"; + + job = " +description \"DHCP client\" + +start on startup +stop on shutdown + +script + interfaces= + for i in $(cd /sys/class/net && ls -d *); do + if test \"$i\" != \"lo\" -a \"$(cat /sys/class/net/$i/operstate)\" != 'down'; then + interfaces=\"$interfaces $i\" + fi + done + + if test -z \"$interfaces\"; then + echo 'No interfaces on which to start dhclient!' + exit 1 + fi + + exec ${dhcp}/sbin/dhclient -d $interfaces +end script + "; + +} |