有没有办法找出系统上次关机的时间?
我知道有一种方法可以使用WMI在Win32_OperatingSystem命名空间中使用LastBootUpTime属性找出上次启动时间.
是否有类似的发现最后关机时间?
谢谢.
PHP中是否有任何函数/全局变量返回脚本的当前状态(如runnning,终止)?
或者是通过利用来设置此状态的唯一方法register_shutdown_function()?
该函数看起来不灵活,因为已经注册的关闭函数可以用它覆盖.而当用户中止连接关机功能得到执行,这是不是我要找的明确,我不想引入太多的限制.
有没有其他register_shutdown_function()选择?或者如果没有,如何处理该功能的缺点?
UPDATE
只是为了澄清:我不是在寻找连接状态(例如connection_aborted()),而是寻找PHP脚本的运行状态(运行,终止).函数以了解有关我已经知道的连接状态的更多信息,但是脚本的当前状态如何?脚本是否已经被终止并且是因为那个而被销毁的对象?
UPDATE2
为了进一步澄清,我仍然没有寻找连接状态, 而是关于运行状态的可比性.它应该在CLI中工作,它没有任何连接状态,因为没有与执行代码相关的TCP连接 - 更好地说明我正在寻找什么.
我使用以下代码关闭自己的System.It工作正常.我需要 关闭另一个系统,它连接在LAN连接.我无法使用此代码执行此操作.如何使用shutdown.exe关闭另一个系统?我的操作系统是windows7.
using System.Diagnostics;
protected void Button1_Click(object sender, EventArgs e)
{
Process.Start("shutdown.exe", "-s -t 00");
}
Run Code Online (Sandbox Code Playgroud) 我遇到Tomcat关机问题.在servlet容器关闭时到达的请求似乎被连接器阻止,直到容器关闭完成.
问题是,我们的servlet可能需要一分钟才能关闭,这意味着在此期间到达的连接将保持长达一分钟.
这种行为是正确/预期的吗?
不理想的Tomcat关机行为是
要检测并防止关机,我使用非常简单的程序.它只有一个表单和一个私有程序,如下所示:
TForm3 = class(TForm)
private
procedure WMQueryEndSession(var Msg : TWMQueryEndSession) ;
message WM_QueryEndSession;
end;
Run Code Online (Sandbox Code Playgroud)
和实施
procedure TForm3.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
Msg.Result := 0; //so I don't want to shutdown while my program is running
end;
Run Code Online (Sandbox Code Playgroud)
我编译了Delphi 5和Delphi 2010.它们都检测到了shutdown.但是当我在Delphi 2010中编译时; 在阻止关机后我的程序关闭.(PC没有关机)
如何从两者中获得相同的结果?
有什么方法可以在终止时运行代码,无论什么样的终止(异常,正常,未捕获的异常等)?我知道它实际上可以用Java,但它甚至可以在C++中使用吗?我假设一个Windows环境.
我有一个非常讨厌的问题,我在其他论坛上发现了几次,但我找不到合适的解决方案.问题是recv()在连接的最后几个字节返回0.以下是一些背景信息.
我调用send()几次(小块),从客户端调用53个字节.服务器多次调用recv()(4字节请求)并读取49个字节然后返回0(54字节 - 49字节,因此缺少4个字节).
MSDN和一些论坛写的非阻塞套接字:
MSDN还说:
使用带有SD_SEND或SD_BOTH的closesocket或shutdown功能会导致在控制通道上发送RELEASE信号.由于ATM的使用单独的信号和数据信道的,有可能是最后的数据到达目的地之前,导致数据丢失释放信号可以达到远端.一种可能的解决方案是在发送的最后一个数据和ATM套接字的关闭或关闭函数调用之间编程足够的延迟.
这在recv()和send()的例子中被认为:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121(v = vs.85).aspx
但仍然没有成功,在收到49字节后,我仍然在10%的连接中得到一些中断,90%的连接成功.有任何想法吗?谢谢.
我正在编写一些测试应用程序,以使用StreamWriter. 执行该WriteLine方法时,系统突然关闭。重新启动机器后,我发现文件末尾有很多 NUL 字符。
我查了很多网站,包括MSDN,都没有找到解决这个问题的方法。
有人可以帮我解决这个问题吗?
如果我们执行以下步骤,可以轻松重现这一点:
创建 WindowsApplication 并在其上放置一个按钮控件。
在按钮单击事件处理程序中编写以下代码:
私人无效button1_Click(对象发送者,EventArgs e)
{
string str = "Welcome to the C Sharp programming world with a test application using IO operations.";
StreamWriter sw = new StreamWriter(fileName, true, Encoding.Unicode, str.Length);
sw.WriteLine(str);
sw.Close();
}
Run Code Online (Sandbox Code Playgroud)
运行应用程序并连续单击按钮(直到机器关闭才停止),然后按 PC 的关机按钮。
重新启动电脑并检查文件。它包含以下文本:
欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。
欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。
欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。
欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。
欢迎来到 C Sharp 编程世界,这里有一个使用 IO 操作的测试应用程序。 …
我有一个在启动时在后台运行的 python 脚本。启动方法是使用 /etc/rc.local 调用的 run.sh 文件中的一个条目。确切的条目是“sudo python /home/pi/run/main.py &”。该系统是一个带有喘息的树莓派。
脚本正在运行,目前没有问题。如果关闭命令发送到系统(通过控制台“sudo shutdown -h now”),我需要进一步的脚本不要立即中止,而是先执行一些代码。这就是我到目前为止所得到的:
#!/usr/bin/env python
import atexit
@atexit.register
def byebye():
c = "End"
datei = open("/home/pi/logfile",'a+b')
datei.write(c + "\n")
datei.close()
def main():
while True:
...do anything...
main()
Run Code Online (Sandbox Code Playgroud)
现在它似乎只是在关机时退出主循环。我是否需要使用不同的方式来关闭系统以便将信号传输到我的脚本,或者我可能没有使用“@atexit”方法?有任何想法吗?
谢谢