首页 > 其他分享 >使用 jar 方式,快速运行 minecraft-service

使用 jar 方式,快速运行 minecraft-service

时间:2024-06-06 17:13:46浏览次数:23  
标签:文件 service jar 命令 systemctl nohup minecraft

在Linux系统中,要将命令封装成.service文件,需要创建一个systemd服务单元文件。下面是创建一个名为minecraft.service​的示例,它会运行你提供的java​命令来启动Minecraft Spigot服务器。

  1. 打开终端。

  2. 使用文本编辑器创建一个新的.service文件。你可以使用nano​或者vi​。例如:

    sudo vi /etc/systemd/system/minecraft.service
    
  3. 在打开的编辑器中,输入以下内容:

    [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
    
  4. 保存并关闭文件。如果你使用的是nano​,可以通过按Ctrl+X​,然后按Y​确认保存,最后按Enter​键退出。

  5. 重新加载systemd管理器配置,以确保新的服务文件被识别:

    sudo systemctl daemon-reload
    
  6. 启用服务,以便在启动时自动运行:

    sudo systemctl enable minecraft.service
    
  7. 启动服务:

    sudo systemctl start minecraft.service
    
  8. 检查服务的状态,确保它正在运行:

    sudo systemctl status minecraft.service
    

请注意,你可能需要根据你的系统配置和Minecraft服务器的安装位置来调整上述文件中的路径和用户。此外,确保你有足够的权限来创建和编辑/etc/systemd/system/​目录下的文件,通常需要root权限。


要删除原有的minecraft.service​,你可以按照以下步骤操作:

  1. 停止服务
    首先,你需要停止正在运行的minecraft.service​服务。可以使用以下命令:

    sudo systemctl stop minecraft.service
    
  2. 禁用服务
    然后,禁用服务以防止它在系统启动时自动运行:

    sudo systemctl disable minecraft.service
    
  3. 删除服务文件
    接下来,删除/etc/systemd/system/​目录下的minecraft.service​文件。使用以下命令:

    sudo rm /etc/systemd/system/minecraft.service
    
  4. 重新加载systemd管理器配置
    删除服务文件后,重新加载systemd管理器配置,以确保更改生效:

    sudo systemctl daemon-reload
    
  5. 确认服务已删除
    最后,检查服务是否已从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​ 的文件中。

方法二:创建并运行一个脚本

  1. 创建一个脚本文件,例如 start_minecraft.sh​:
vi start_minecraft.sh
  1. 在打开的编辑器中,输入以下内容:
#!/bin/bash
java -Xms1G -Xmx4G -jar /root/minecraft-server/spigot-1.20.1.jar nogui
  1. 保存并退出编辑器。
  2. 给脚本文件添加执行权限:
chmod +x start_minecraft.sh
  1. 运行脚本并将其放入后台:
./start_minecraft.sh &

使用 &​ 符号将脚本放入后台执行,这样即使终端关闭,脚本也会继续运行。

检查后台进程

要检查后台进程的状态,你可以使用以下命令:

jobs

这将列出所有在后台运行的作业。

或者,你可以使用 ps​ 命令来查找 Java 进程:

ps aux | grep java

这将显示所有包含 java​ 关键字的进程。

注意事项

  • 确保你的 Java 应用程序能够处理在后台运行时可能遇到的任何问题,例如日志记录和错误处理。
  • 如果你使用的是 nohup​,确保 nohup.out​ 文件有足够的空间来存储输出,或者考虑将输出重定向到其他文件。
  • 如果你的系统配置了 ulimit​ 来限制后台进程的数量,你可能需要调整这些限制,或者确保你不会超出限制。

要查看后台运行的进程状态,你可以使用多种Linux命令。以下是一些常用的命令:

  1. 使用 jobs命令
    这个命令会列出当前终端会话中的后台作业。

    jobs
    
  2. 使用 ps命令
    ps​ 命令可以显示当前运行的进程。结合 grep​ 命令,你可以过滤特定的进程。

    ps aux | grep java
    

    这将列出所有包含 java​ 关键字的进程。

  3. 使用 top htop命令
    这些命令提供了一个动态更新的进程列表,你可以看到进程的实时状态。

    top
    

    或者,如果你的系统安装了 htop​:

    htop
    
  4. 使用 pgrep pkill命令
    pgrep​ 可以根据进程名或其他属性查找进程的PID。

    pgrep -f java
    

    这将查找所有包含 java​ 字符串的进程的PID。

  5. 使用 systemctl命令
    如果你的进程是作为系统服务运行的,你可以使用 systemctl​ 来查看服务的状态。

    systemctl status 服务名称
    

    例如,如果你的服务名为 minecraft.service​,你可以使用:

    systemctl status minecraft.service
    
  6. 查看日志文件
    如果后台进程有日志输出,查看日志文件也是了解进程状态的一种方式。例如,如果你使用了 nohup​,输出通常会被重定向到 nohup.out​ 文件。

    cat nohup.out
    
  7. 使用 tail命令
    tail​ 命令可以用来查看文件的最后几行,这在查看日志文件时非常有用。

    tail -f /path/to/logfile.log
    

    这将持续显示日志文件的最后几行,直到你停止命令(使用 Ctrl+C​)。

请根据你的具体需求选择合适的命令。如果你正在寻找特定的进程或服务,确保你知道进程的名称或服务的确切名称。

标签:文件,service,jar,命令,systemctl,nohup,minecraft
From: https://www.cnblogs.com/shenhuanjie/p/18235637/use-jar-to-quickly-run-minecraftservice-z16

相关文章

  • Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
    打包与运行window版本上制作我们要把idea中的程序抽取出来作为一个独立的jar包把jar包放到服务器上服务器是长期运行的我们就能随时访问了在Maven的生命周期中选择package打包功能在资源管理器中查找java-jar文件名.jarjava-jar文件名.jar但是我们在测试里面......
  • XML-RPC实现WebService简单PHP程序示例 及 Closure闭包中的bind与bindTo方法的区别
    一、XML-RPC实现WebService简单PHP程序示例    WebService就是为了异构系统的通信而产生的,它基本的思想就是使用基于XML的HTTP的远程调用提供一种标准的机制,而省去建立一种新协议的需求。目前进行WebService通信有两种协议标准,一种是XML-RPC,另外一种是SOAP。XML-RPC比较......
  • HttpContext探究之RequestServices
    HttpContext探究之RequestServices在一篇随笔中提到了中间件的构造方式,主要有两种,第一种是直接从容器里面获取,第二种是构造函数的参数从容器里面获取,这两者都离不开容器,也就是serviceprovide,而RequestService则是里面重要的内容RequestServices是什么HttpContext.RequestServi......
  • IDEA如何把MAVEN项目打包成jar包并且用命令行启动
    首先在pom文件里引入插件<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>1.4</version><configura......
  • Manjaro Linux下使用wine运行企业微信
    开始因为工作原因所以必须用到企业微信,但是企业微信是目前主流办公软件中可能唯一一个不支持Linux系统的软件了,于是只能使用wine来运行windows版本来使用。期间遇到了各种坑在此记录一下,以便于能帮到同样需要的同学,也希望腾讯能够尽快开发Linux原生的企业微信。安装首先我们需......
  • 宝塔面板部署ruoyi-admin_jar(java项目)
    1.创建文件夹,上传jar文件:/www/wwwroot/域名/ruoyi-admin_jar2.点击网站-》添加Java项目3.选择已上传的jar文件-》添加对应域名-》配置后端路径:/prov-api,配置前端路径:/www/wwwroot/域名/dist(其他的默认)4.点击确认,等待一下,尝试访问(报错:404前端路径不对,502端口配置不对,401后端api......
  • 基于BungeeCord搭建 多服务端 Minecraft 我的世界 Bedwars服务器 教程
    本文基于BungeeCord搭建多服务我的世界起床战争服务器本文章后续会持续更新由于多世界插件EssentialsX-Core与Bedwars1058在部分指令上有冲突,于是建议使用BungeeCord(之后我简称BC)搭建多服务端minecraft服务器,将起床Bedwars服务分离出来,顺便将其他的服务比如登陆大厅等分离出......
  • java -jar命令常见使用方法
    1、基本用法:java-jarfilename.jar这是最简单的用法,直接指定要运行的JAR文件的名称(包括.jar扩展名)。Java虚拟机(JVM)将加载并执行JAR文件中的主类(在JAR文件的META-INF/MANIFEST.MF文件中指定为主类)。2.使用nohup在后台运行:如果你希望在后台运行JAR文件,......
  • 发布 jar 包到 maven 中央仓库
    目前开发基本都是以maven或者gradle的方式,直接引入依赖包即可,那么该咋那么发布我们自己的jar包到maven仓库,让别人使用呢?本文适用于2024.3之后的步骤文章目录账号准备第一步,注册账号第二步,新建命名空间第三步,验证命名空间第四步,创建push的账号和密码点击右上角......
  • 怎么下载 jar 包
    一、在Maven仓库里面下载 Maven仓库 网址:https://mvnrepository.com/二、搜索需要的jar包(以druid为例)三、找到druidjar包,点进去四、找到自己需要的版本,点进去五、点jar下载 ......