gpt4 book ai didi

lua - 通过 Lua 脚本重启系统

转载 作者:行者123 更新时间:2023-12-04 23:30:43 43 4
gpt4 key购买 nike

我需要通过 Lua 脚本重新启动系统。
我需要在重新启动之前写一些字符串,并且需要在 Lua 中写一个字符串
重新启动完成后的脚本。

例子 :

print("Before Reboot System")

Reboot the System through Lua script

print("After Reboot System")

我将如何做到这一点?

最佳答案

您可以使用 os.execute发出系统命令。对于 Windows,它是 shutdown -r , 对于 Posix 系统,它只是 reboot .因此,您的 Lua 代码将如下所示:

请注意,重新启动命令的一部分是停止事件程序,例如 Lua 脚本。这意味着存储在 RAM 中的任何数据都将丢失。您需要将要保留的任何数据写入磁盘,例如使用 table serialization .

不幸的是,如果对您的环境没有更多了解,我无法告诉您如何再次调用该脚本。您可以在 ~/.bashrc 的末尾附加对脚本的调用。或类似。

确保加载此数据并在调用重启函数后的某个时间点开始是您返回时所做的第一件事!您不想陷入无休止的重启循环中,在这种情况下,您的计算机开机后所做的第一件事就是自行关闭。这样的事情应该工作:

local function is_rebooted()
-- Presence of file indicates reboot status
if io.open("Rebooted.txt", "r") then
os.remove("Rebooted.txt")
return true
else
return false
end
end

local function reboot_system()
local f = assert(io.open("Rebooted.txt", "w"))
f:write("Restarted! Call On_Reboot()")

-- Do something to make sure the script is called upon reboot here

-- First line of package.config is directory separator
-- Assume that '\' means it's Windows
local is_windows = string.find(_G.package.config:sub(1,1), "\\")

if is_windows then
os.execute("shutdown -r");
else
os.execute("reboot")
end
end

local function before_reboot()
print("Before Reboot System")
reboot_system()
end

local function after_reboot()
print("After Reboot System")
end

-- Execution begins here !
if not is_rebooted() then
before_reboot()
else
after_reboot()
end

(警告 - 未经测试的代码。我不想重新启动。:)

关于lua - 通过 Lua 脚本重启系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5327882/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com