我有一个Java应用程序,当用户选择Start-> Shutdown时,我想"很好地"关闭它.我已经尝试通过Runtime.addShutdownHook(...)使用JVM关闭监听器,但这不起作用,因为我不能使用它的任何UI元素.
我也尝试在我的主应用程序UI窗口上使用退出处理程序,但据我所知,它无法暂停或停止关机.我怎样才能很好地处理关机?
我正在编写一个Java应用程序来远程关闭我的Linux机器.
桌面应用程序位于并等待发送给它的命令.我尝试使用"shutdown -h",但这需要sudo权限,不是一个选项.然后我找到了一种使用以下dbus-send解决方案在没有sudo的情况下关闭的方法:
dbus-send --print-reply --system --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我试图找出,使用dbus-send,如果它可能做一个类似于"关机3600"的定时关机,这将在1小时内关闭计算机?
干杯
EEF
所以我让我的prism/mvvm/mef程序运行良好,用户在应用程序中输入数据,然后关闭应用程序(或关闭计算机).
如何通知程序关闭/计算机关闭的View(模型),以便它可以保存用户数据,也可以询问是否应保存这些数据?
关闭程序关闭的数据肯定是要避免的,并且在用户的每个按键上保存内容是没有意义的.
例如,如果我有一个java命令行程序,它产生一个新线程(线程#2)进行一些轮询,然后睡5分钟.程序的主线程(线程#1)正在运行,然后在线程#2启动5分钟之前完成,所以程序将退出.这有什么问题吗?我应该在这个程序的主函数结束之前中断线程#1中的线程#2吗?
我想知道以编程方式关闭AIR应用程序的正确方法.
在我的Spark WindowedApplication中,我有:
this.addEventListener( Event.CLOSING, shutdownApp );
Run Code Online (Sandbox Code Playgroud)
当然还有shutdownApp方法的实现(它基本上整理了临时文件).
这适用于窗口的右上角关闭按钮.但是我也有需要关闭应用程序的功能.在我调用的代码中:
NativeApplication.nativeApplication.exit();
Run Code Online (Sandbox Code Playgroud)
但是,这不会触发Event.CLOSING方法,因此我的临时文件不会被清除.我不应该调用nativeApplication.exit吗?如果是这样,我该怎么称呼呢?我宁愿不必在NativeApplication.exit()之前调用我的shutdownApp方法,因为这不太优雅.
任何人都可以对正确的做法有所了解吗?
谢谢,
菲尔
我可以使用API命令ec2-terminate-instances来终止Amazon EC2实例,但我正在尝试在登录EC2实例本身时找到如何执行此操作.
我已经尝试了shutdown -h now但是这只会"停止"实例,而不会完全终止它.
有没有办法做到这一点?
可能重复:
检测Windows关闭事件
在VB.NET中是否有关于关闭的事件?我想在用户点击关闭的计算机上执行语句,这可以在vb.net中完成吗?
我是Delphi XE4使用OSX API的新手.所以,我不知道如何将XCode示例转换为Delphi.
任何人都可以给我一个例子,说明如何通过调用OSX API关闭我的MacOS?
更新:我在这里收到了一篇Apple文章:http: //developer.apple.com/library/mac/#qa/qa1134/_index.html
但似乎没有声明API.我尝试使用MacAPI单元并输入函数,编译器说未找到.
我有一个运行的osgi(equinox容器)应用程序.它将通过bash脚本启动.见felix gogo shell
java -jar ... _osgi.jar -console 1234 &
Run Code Online (Sandbox Code Playgroud)
这一切都很好,我也可以阻止它
telnet localhost 1234
<osgi>stop 0
Run Code Online (Sandbox Code Playgroud)
但我正在寻找的是如何将其嵌入到bash脚本中以停止osgi应用程序.
我已经试过了
echo stop 0 | telnet localhost 1234
Run Code Online (Sandbox Code Playgroud)
但这不起作用.因此,如果有人知道如何将其放入bash脚本中,请告诉我.
我有一个main函数,我在其中创建一个Tokio运行时并在其上运行两个期货.
use tokio;
fn main() {
let mut runtime = tokio::runtime::Runtime::new().unwrap();
runtime.spawn(MyMegaFutureNumberOne {});
runtime.spawn(MyMegaFutureNumberTwo {});
// Some code to 'join' them after receiving an OS signal
}
Run Code Online (Sandbox Code Playgroud)
我如何收到SIGTERM,等待所有未完成的任务NotReady并退出应用程序?
shutdown ×10
java ×3
air ×1
amazon-ec2 ×1
apache-flex ×1
asynchronous ×1
bash ×1
command-line ×1
dbus ×1
delphi ×1
delphi-xe4 ×1
firemonkey ×1
flex-spark ×1
future ×1
linux ×1
macos ×1
mvvm ×1
osgi ×1
prism ×1
rust ×1
rust-tokio ×1
sleep ×1
vb.net ×1
windows ×1