add root reboot command

This commit is contained in:
2026-03-19 16:25:55 +07:00
parent 19c1ebed18
commit dbd73958cf
2 changed files with 73 additions and 5 deletions

View File

@@ -157,18 +157,40 @@ function check_router_once(ip::AbstractString; timeout=TIMEOUT_SECS)
end
end
# Check if running as root
function is_root()::Bool
try
result = read(`whoami`, String)
return strip(result) == "root"
catch
return false
end
end
# Reboot command selection
# Return program and separate args as plain strings
function reboot_command()
if Sys.iswindows()
return ("/usr/bin/cmd", "/C", "shutdown /r /t 0")
elseif Sys.isapple()
return ("/usr/bin/sudo", "shutdown", "-r", "now")
elseif Sys.islinux()
if isfile("/bin/systemctl") || isfile("/usr/bin/systemctl")
return ("/usr/bin/sudo", "systemctl", "reboot")
if is_root()
return ("/sbin/reboot")
else
return ("/usr/bin/sudo", "reboot")
return ("/usr/bin/sudo", "shutdown", "-r", "now")
end
elseif Sys.islinux()
if is_root()
if isfile("/bin/systemctl")
return ("/bin/systemctl", "reboot")
else
return ("/usr/sbin/reboot")
end
else
if isfile("/bin/systemctl") || isfile("/usr/bin/systemctl")
return ("/usr/bin/sudo", "systemctl", "reboot")
else
return ("/usr/bin/sudo", "reboot")
end
end
else
return nothing