Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
annotate usr/local/etc/rc.d/bhyve @ 464:f1e00e5b2f2d origin
ADD: the new original code from bhyve-rc.
Source:
- https://github.com/kchoudhu/bhyve-rc
- bhyve-rc-4: /usr/local/etc/rc.d/bhyve
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Thu, 13 Jun 2024 17:30:24 +0200 |
| parents | |
| children |
| rev | line source |
|---|---|
|
464
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
1 #!/bin/sh |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
2 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
3 # PROVIDE: bhyve |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
4 # REQUIRE: LOGIN |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
5 # KEYWORD: nojail |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
6 # |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
7 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
8 # |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
9 # Add the following lines to /etc/rc.conf to enable bhyve: |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
10 # bhyve_enable (bool): Set to "NO" by default. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
11 # Set it to "YES" to enable bhyve |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
12 # bhyve_profiles (str): Set to "" by default. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
13 # Define your profiles here. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
14 # bhyve_tapdev (str): Set to "tap0" by default. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
15 # Set to the tap(4) device to use. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
16 # bhyve_diskdev (str): Must be set, no default. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
17 # Set to the disk device to use. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
18 # bhyve_ncpu (int): Set to 1 by default. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
19 # Set to the number of CPUs for the VM. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
20 # bhyve_memsize (int): Set to 512 by default. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
21 # Set to the number of MB of memory for the VM. |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
22 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
23 . /etc/rc.subr |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
24 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
25 name="bhyve" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
26 rcvar=bhyve_enable |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
27 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
28 start_precmd="bhyve_prestart" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
29 status_cmd="bhyve_status" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
30 poll_cmd="bhyve_poll" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
31 stop_cmd="bhyve_stop" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
32 _session=$name |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
33 command="/usr/local/bin/tmux" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
34 procname="-sh" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
35 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
36 [ -z "$bhyve_enable" ] && bhyve_enable="NO" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
37 [ -z "$bhyve_tapdev" ] && bhyve_tapdev="tap0" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
38 [ -z "$bhyve_diskdev" ] && bhyve_diskdev="none" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
39 [ -z "$bhyve_ncpu" ] && bhyve_ncpu="1" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
40 [ -z "$bhyve_memsize" ] && bhyve_memsize="512" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
41 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
42 load_rc_config $name |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
43 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
44 if [ -n "$2" ]; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
45 profile="$2" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
46 _session="${_session}_${profile}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
47 if [ "x${bhyve_profiles}" != "x" ]; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
48 eval bhyve_enable="\${${_session}_enable:-${bhyve_enable}}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
49 eval bhyve_tapdev="\${${_session}_tapdev:-${bhyve_tapdev}}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
50 eval bhyve_diskdev="\${${_session}_diskdev:-${bhyve_diskdev}}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
51 eval bhyve_ncpu="\${${_session}_ncpu:-${bhyve_ncpu}}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
52 eval bhyve_memsize="\${${_session}_memsize:-${bhyve_memsize}}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
53 else |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
54 echo "$0: extra argument ignored" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
55 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
56 else |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
57 if [ "x${bhyve_profiles}" != "x" -a "x$1" != "x" ]; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
58 for profile in ${bhyve_profiles}; do |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
59 eval _enable="\${bhyve_${profile}_enable}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
60 case "x${_enable:-${bhyve_enable}}" in |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
61 x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee]) |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
62 continue |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
63 ;; |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
64 x[Yy][Ee][Ss]) |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
65 ;; |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
66 *) |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
67 if test -z "$_enable"; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
68 _var=bhyve_enable |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
69 else |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
70 _var=bhyve_"${profile}"_enable |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
71 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
72 echo "Bad value" \ |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
73 "'${_enable:-${bhyve_enable}}'" \ |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
74 "for ${_var}. " \ |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
75 "Profile ${profile} skipped." |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
76 continue |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
77 ;; |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
78 esac |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
79 echo "===> bhyve profile: ${profile}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
80 /usr/local/etc/rc.d/bhyve $1 ${profile} |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
81 retcode="$?" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
82 if [ "0${retcode}" -ne 0 ]; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
83 failed="${profile} (${retcode}) ${failed:-}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
84 else |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
85 success="${profile} ${success:-}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
86 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
87 done |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
88 exit 0 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
89 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
90 profile=$name |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
91 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
92 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
93 pidfile="/var/run/${_session}.pid" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
94 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
95 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
96 bhyve_prestart() |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
97 { |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
98 case ${bhyve_diskdev} in |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
99 [Nn][Oo][Nn][Ee] | '') |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
100 echo "No ${_session}_diskdev set. Quitting." 1>&2 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
101 return 1; |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
102 ;; |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
103 esac |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
104 if [ ! -c "${bhyve_diskdev}" -a ! -f "${bhyve_diskdev}" ]; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
105 echo "${bhyve_diskdev} doesn't exist or is not suitable as a diskdev" 1>&2 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
106 return 1; |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
107 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
108 } |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
109 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
110 bhyve_status() |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
111 { |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
112 if ${command} has-session -t ${_session} 2>/dev/null; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
113 echo "${_session} is running." |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
114 else |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
115 echo "${_session} is not running." |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
116 return 1 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
117 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
118 } |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
119 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
120 bhyve_poll() |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
121 { |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
122 echo -n "Waiting for session: ${_session}" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
123 while ${command} has-session -t ${_session} 2>/dev/null; do |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
124 sleep 1 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
125 done |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
126 echo |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
127 } |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
128 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
129 bhyve_stop() |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
130 { |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
131 if ${command} has-session -t ${_session} 2>/dev/null; then |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
132 echo "Stopping ${_session}." |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
133 ${command} kill-session -t ${_session} |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
134 while ${command} has-session -t ${_session} 2>/dev/null; do |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
135 sleep 1 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
136 done |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
137 fi |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
138 rm -f ${pidfile} |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
139 } |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
140 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
141 command_args="new-session -ds ${_session} \"sh -c 'echo \\\$PPID >${pidfile}; while true; do /usr/sbin/bhyvectl --vm=${_session} --destroy; /usr/sbin/bhyveload -m ${bhyve_memsize} -d ${bhyve_diskdev} ${_session} && /usr/sbin/bhyve -c ${bhyve_ncpu} -m ${bhyve_memsize} -AI -H -P -g 0 -s 0:0,hostbridge -s 1:0,virtio-net,${bhyve_tapdev} -s 2:0,virtio-blk,${bhyve_diskdev} -s 31,lpc -l com1,stdio ${_session} || break; done'\"" |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
142 |
|
f1e00e5b2f2d
ADD: the new original code from bhyve-rc.
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
diff
changeset
|
143 run_rc_command "$1" |
