47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #!/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" |