【发布时间】:2013-11-28 15:24:30
【问题描述】:
我有一个在 linux 服务器上运行的 Java 应用程序。启动时,它会将进程 ID 记录到“pidfile”中。
当我关闭它时,我只是从该文件中读取 pid,然后将其杀死:
kill -9 12345
但是其他人说不安全,建议我嵌入一个小型http服务器,并提供一个http api用于关闭,例如:
http://localhost:8080/close
当我想关闭它时,我需要访问它:
curl http://localhost:8080/close
它可以工作但很无聊,我还是更喜欢“进程ID”的方式。有什么方法可以使用进程id安全关闭应用吗?
更新:
这里的“安全”是指我可以取消一些正在运行的任务,这些任务可能会将文件写入磁盘并在退出之前关闭一些资源。
【问题讨论】:
-
取决于你所说的安全是什么意思?我猜“人们”是在说允许 Java 进程清理和关闭资源,但如果这与您无关,那就不要打扰(尽管
kill -HUP可能会更好一些......) -
@AndersR.Bystrup 谢谢,我刚刚更新了我的问题