add root reboot command
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user