使用 jar 方式,快速运行 minecraft-service
在Linux系统中,要将命令封装成.service文件,需要创建一个systemd服务单元文件。下面是创建一个名为minecraft.service的示例,它会运行你提供的java命令来启动Minecraft Spigot服务器。
-
打开终端。
-
使用文本编辑器创建一个新的.service文件。你可以使用
nano或者vi。例如:sudo vi /etc/systemd/system/minecraft.service -
在打开的编辑器中,输入以下内容:
[Unit] Description=Minecraft Spigot Server After=network.target [Service] Type=simple User=root ExecStart=/usr/bin/java -Xms1G -Xmx4G -jar /root/minecraft-server/spigot-1.20.1.jar nogui [Install] WantedBy=multi-user.target -
保存并关闭文件。如果你使用的是
nano,可以通过按Ctrl+X,然后按Y确认保存,最后按Enter键退出。 -
重新加载systemd管理器配置,以确保新的服务文件被识别:
sudo systemctl daemon-reload -
启用服务,以便在启动时自动运行:
sudo systemctl enable minecraft.service -
启动服务:
sudo systemctl start minecraft.service -
检查服务的状态,确保它正在运行:
sudo systemctl status minecraft.service
请注意,你可能需要根据你的系统配置和Minecraft服务器的安装位置来调整上述文件中的路径和用户。此外,确保你有足够的权限来创建和编辑/etc/systemd/system/目录下的文件,通常需要root权限。
要删除原有的minecraft.service,你可以按照以下步骤操作:
-
停止服务:
首先,你需要停止正在运行的minecraft.service服务。可以使用以下命令:sudo systemctl stop minecraft.service -
禁用服务:
然后,禁用服务以防止它在系统启动时自动运行:sudo systemctl disable minecraft.service -
删除服务文件:
接下来,删除/etc/systemd/system/目录下的minecraft.service文件。使用以下命令:sudo rm /etc/systemd/system/minecraft.service -
重新加载systemd管理器配置:
删除服务文件后,重新加载systemd管理器配置,以确保更改生效:sudo systemctl daemon-reload -
确认服务已删除:
最后,检查服务是否已从systemd中删除:sudo systemctl status minecraft.service如果服务已被删除,你应该会看到一条消息,说明服务未找到或不存在。
请注意,直接删除服务文件可能会影响系统的稳定性,特别是如果该服务是由系统管理员或系统软件管理的。在删除任何服务之前,请确保你了解该服务的作用,以及删除它的后果。如果你不确定,最好咨询有经验的系统管理员。
要在后台运行命令,你可以使用 nohup 命令或者将命令放入一个脚本中,并使用 & 符号将脚本放入后台执行。以下是两种方法的示例:
方法一:使用 nohup 命令
nohup 命令可以防止你的命令在终端关闭后被终止。以下是如何使用 nohup 来运行你的 Java 命令:
nohup java -Xms1G -Xmx4G -jar /root/minecraft-server/spigot-1.20.1.jar nogui &
这条命令会在后台运行 Java 程序,并且即使终端关闭,程序也会继续运行。nohup 的输出默认会被重定向到名为 nohup.out 的文件中。
方法二:创建并运行一个脚本
- 创建一个脚本文件,例如
start_minecraft.sh:
vi start_minecraft.sh
- 在打开的编辑器中,输入以下内容:
#!/bin/bash
java -Xms1G -Xmx4G -jar /root/minecraft-server/spigot-1.20.1.jar nogui
- 保存并退出编辑器。
- 给脚本文件添加执行权限:
chmod +x start_minecraft.sh
- 运行脚本并将其放入后台:
./start_minecraft.sh &
使用 & 符号将脚本放入后台执行,这样即使终端关闭,脚本也会继续运行。
检查后台进程
要检查后台进程的状态,你可以使用以下命令:
jobs
这将列出所有在后台运行的作业。
或者,你可以使用 ps 命令来查找 Java 进程:
ps aux | grep java
这将显示所有包含 java 关键字的进程。
注意事项
- 确保你的 Java 应用程序能够处理在后台运行时可能遇到的任何问题,例如日志记录和错误处理。
- 如果你使用的是
nohup,确保nohup.out 文件有足够的空间来存储输出,或者考虑将输出重定向到其他文件。 - 如果你的系统配置了
ulimit 来限制后台进程的数量,你可能需要调整这些限制,或者确保你不会超出限制。
要查看后台运行的进程状态,你可以使用多种Linux命令。以下是一些常用的命令:
-
使用
jobs 命令:
这个命令会列出当前终端会话中的后台作业。jobs -
使用
ps 命令:
ps 命令可以显示当前运行的进程。结合grep 命令,你可以过滤特定的进程。ps aux | grep java这将列出所有包含
java 关键字的进程。 -
使用
top 或 htop 命令:
这些命令提供了一个动态更新的进程列表,你可以看到进程的实时状态。top或者,如果你的系统安装了
htop:htop -
使用
pgrep 和 pkill 命令:
pgrep 可以根据进程名或其他属性查找进程的PID。pgrep -f java这将查找所有包含
java 字符串的进程的PID。 -
使用
systemctl 命令:
如果你的进程是作为系统服务运行的,你可以使用systemctl 来查看服务的状态。systemctl status 服务名称例如,如果你的服务名为
minecraft.service,你可以使用:systemctl status minecraft.service -
查看日志文件:
如果后台进程有日志输出,查看日志文件也是了解进程状态的一种方式。例如,如果你使用了nohup,输出通常会被重定向到nohup.out 文件。cat nohup.out -
使用
tail 命令:
tail 命令可以用来查看文件的最后几行,这在查看日志文件时非常有用。tail -f /path/to/logfile.log这将持续显示日志文件的最后几行,直到你停止命令(使用
Ctrl+C)。
请根据你的具体需求选择合适的命令。如果你正在寻找特定的进程或服务,确保你知道进程的名称或服务的确切名称。

浙公网安备 33010602011771号