Articles of 关机

如何检测从Linux应用程序关机/重新启动

我有一个用C语言编写的应用程序,作为一个守护进程运行,当系统处于关机或重启状态时,需要通过RS232发送一些东西,需要区分这两者。 所以我的想法是:在我的应用脚本/etc/init.d/my_app在我的脚本的“停止”的情况下,我会运行/ sbin / runlevel命令获取当前运行级别:0 – closures状态6 – 重新启动状态,然后我会执行一些命令来通知我的守护进程是什么状态,守护进程将通过rs执行通信,然后退出。 我认为它应该工作,但它可能不是最好的解决scheme,尤其是因为我的应用程序已经作为一个守护进程运行,也许我可以直接从系统/内核/库或通过Unix套接字或东西收到一些信号。 最好的祝福 马雷克

寻找哪个程序运行另一个

我有一个运行在似乎是Redhat Linux的有限版本上的NAS。 我遵循指示来破解它,所以我可以有shell访问,这是一个很大的帮助。 我也做了一些修改,其他人已经做了修改,除了一个问题,他们似乎都工作得很好。 不知何故,每隔22天,系统就会closures。 我用一个运行ps的脚本来查找shutdown实际上是被调用的,但是我不知道什么程序调用了shutdown。 如果我重命名/ sbin / shutdown,那么我可以编写一个脚本来replace它。 但是,我想要的最重要的信息是程序调用关机。 如果一个程序运行我的脚本(phony / sbin / shutdown),我怎样才能找出什么程序叫我的脚本? 我希望能够从脚本内部,首先确定哪个程序称为脚本。 如果它更容易,我总是可以使用Perl脚本而不是bash脚本。

如何检测Linux关机/重启

我试图检测closures或从我的C程序从Linux重新启动。 我发现程序可以使用signal(SIGTERM,handler)(SIGKILL,handler)。 但是如果用户用命令杀死这个进程,这两个也会触发。 在一些解决scheme,他们说可以使用运行级别,但它不会工作。 在系统初始化运行级别之前,不知道进程是否被终止。 我甚至尝试把脚本放在rcx.d中,但它仍然不起作用。 有没有人有一些build议? 我需要在多种Linux系统上运行。 谢谢。 [更新]我使用R解决scheme,但仍然没有看到我的数据在重新启动或关机清除。 是我的function是错误的? int start() { if (initIni() == EXIT_FAILURE) return EXIT_FAILURE; struct sigaction act; memset(&act, '\0', sizeof(act)); act.sa_sigaction = &signal_callback_handler; act.sa_flags = SA_SIGINFO; sigaction(SIGTERM, &act, NULL); …. } void signal_callback_handler(int signum, siginfo_t *siginfo, void *context) { if (signum == SIGTERM && (long)siginfo->si_pid == 1) { clearData(); […]

如何让我的Java应用程序在Windows中很好地closures?

我有一个Java应用程序,当用户select“开始” – >“closures”时,我想closures“很好”。 我已经尝试通过Runtime.addShutdownHook(…)使用JVMclosures侦听器,但是这不起作用,因为我不能使用任何UI元素。 我也尝试在我的主应用程序UI窗口上使用退出处理程序,但它无法暂停或停止关机,据我所知。 我怎样才能妥善处理关机?

防止Windows 7关机

我知道shutdown -a会中止Windows关机,但是我需要知道是否有任何可以检查的地方查看是否正在进行关机。 理想情况下,我想要一个像这样的小程序: import os while True: shuttingDown = <shutdown variable to check> if shuttingDown: os.system("shutdown.exe -a")

从linuxterminalclosuresWindows机器

我正在linux机器上运行一个应用程序。 通过给出一个Windows机器的IP地址作为input,应用程序必须closuresWindows机器。 如果机器运行相同的操作系统,这是很容易的,但我很困惑如何在跨操作系统。

有什么API函数可以在安装任何挂起的更新时closuresWindows?

我知道简单地closuresWindows的ExitWindowsEx() API函数。 但据我所知,你不能让Windows安装任何挂起的更新。 是否有任何API支持安装任何挂起的更新(在标准的蓝屏,其中指出“ n个m更新已经安装 – 请不要closures或拔下电脑,Windows将自行closures ”),然后closuresWindows(相当于点击Windows用户界面的“安装更新和关机”菜单选项)? (操作系统版本:Windows XP及更高版本)

防止从Pythonclosures窗户

我想防止Windows(XP和7)closures。 为此,我似乎必须拦截WM_QUERYENDSESSION消息并返回False。 好吧,我必须纠正我的说法,这个程序在Windows 7下工作正常,但在Windows 7embedded式标准服务包1,它不会阻止关机!? import ctypes from ctypes import c_long, c_int, c_wchar_p import time import win32api import win32con import win32gui import win32process oldWndProc = None def wndproc(hWnd, msg, wParam, lParam): print("wndproc received message: %s" % msg) if (msg == win32con.WM_QUERYENDSESSION): print("wndproc received WM_QUERYENDSESSION") return 0 # Pass all messages to the original WndProc return […]

从Windows服务中断计算机closures

是否有可能中止电脑关机从Windows服务?

我应该处理WM_ENDSESSION,WM_QUERYENDSESSION,两者还是两者都不?

如果系统试图closures,应用程序可以通过覆盖OnQueryEndSession()并返回FALSE来阻止closures。 当然,这意味着WM_ENDSESSION是关于关机的唯一明确信息。 另一方面, 这个问题的最高层回答不亚于Raymond Chen说,回应WM_ENDSESSION是毫无意义的。 所以这是令人困惑的。 是否有某种“最佳实践”原则可用于决定哪些消息(如果有)应该做出什么样的应用closures工作? 特别是,如果两个消息都没有被处理,closures过程是否会导致应用程序被closures,就好像用户手动closures了应用程序(例如,点击红色的Xclosuresbutton)?