为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Linux中软杀死一个进程?

如何在Linux中软杀死一个进程?

凤凰求蛊 2022-07-27 19:54:38
我最近在 linux 操作系统上设置了我的游戏服务器,并使用 SSH 来运行运行游戏服务器的 java 文件。为了让我能够退出 SSH 会话但保持服务器运行,我正在使用 nohup 并创建一个为我执行此操作的脚本:#!/bin/bashcd "RSPS"echo "Booting the RSPS..."nohup java -Xmx220m -cp bin:lib/* com.ruseps.GameServer &我可以随时使用如下tail命令查看我的服务器的状态:#!/bin/bashcd "RSPS"tail -f nohup.out但是,我的服务器有关闭钩子,它希望退出 java 文件以便运行top,然后killing 服务的 PID 忽略了关闭钩子,从而破坏了“保存”状态并使我的服务器无法启动。有没有办法我可以重新打开进程并轻柔地终止服务,即像退出它以便文件可以运行关闭挂钩?我目前正在做的,没有运行关机钩子的是通过命令行使用它:topkill PID_HERE
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

为了让我能够退出 SSH 会话但保持服务器运行,我正在使用 nohup 并创建一个为我执行此操作的脚本:

首先:不要那样做!

实施适当的服务。如果正在运行的机器使用systemd,您只需编写一个单元文件https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files

如果您的机器使用init-script 样式的初始化系统,请复制一些类似网络服务的初始化脚本,例如网络服务器并根据需要对其进行修改。

请记住,您应该为您的服务器创建一个新的用户/组,以便在启动时检查它是否没有以 root 身份运行(因为这总是一个坏主意)。

但是,我的服务器有关闭挂钩

这些钩子是如何实现的?如何通知您的服务器关闭?信号(这SIGTERM是由 发送的默认信号kill,尽管它的名称)是通知进程的标准方式,它们将正常终止。有关详细信息,请参阅官方 Java 文档:https ://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/signals.html


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信