47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # REQUIRE: LOGIN
 | |
| # PROVIDE: windows
 | |
| # KEYWORD: shutdown
 | |
| 
 | |
| . /etc/rc.subr
 | |
| name=windows
 | |
| rcvar=${name}_enable
 | |
| start_cmd="${name}_start"
 | |
| stop_cmd="${name}_stop"
 | |
| status_cmd="${name}_status"
 | |
| load_rc_config $name
 | |
| 
 | |
| tmux_name="windows"
 | |
| 
 | |
| windows_start() {
 | |
|    /usr/local/bin/tmux new-session -d -s "$tmux_name" "/usr/bin/env VNC_ENABLE=YES VNC_LISTEN=0.0.0.0:5900 /usr/local/bin/bash /usr/local/bin/launch_windows start windows zroot/freebsd/current/vm/windows /vm/windows /vm/.iso/Win11_23H2_English_x64v2.iso"
 | |
| }
 | |
| 
 | |
| windows_status() {
 | |
|     if /usr/local/bin/tmux has-session -t $tmux_name 2>/dev/null; then
 | |
|         echo "$tmux_name is running."
 | |
|     else
 | |
|         echo "$tmux_name is not running."
 | |
|         return 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| windows_stop() {
 | |
|     /usr/local/bin/tmux has-session -t $tmux_name 2>/dev/null && (
 | |
|         /usr/local/bin/tmux kill-session -t $tmux_name
 | |
|         sleep 10
 | |
|         bhyvectl --vm=windows --destroy
 | |
|         # kill `cat /var/run/windows.pid`
 | |
|     )
 | |
|     windows_wait_for_end
 | |
| }
 | |
| 
 | |
| windows_wait_for_end() {
 | |
|     while /usr/local/bin/tmux has-session -t $tmux_name 2>dev/null; do
 | |
|         sleep 1
 | |
|     done
 | |
| }
 | |
| 
 | |
| run_rc_command "$1"
 | 
