mc 服务端怎么样才能在 Linux 上实现随服务器自启?的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Useful Links
Minecraft Wiki
合成配方
starsriver
V2EX    Minecraft

mc 服务端怎么样才能在 Linux 上实现随服务器自启?的?

  •  
  •   starsriver 2019 年 8 月 18 日 via Android 19068 次点击
    这是一个创建于 2361 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 linux 中启动 mc 服务器的时候需要 cd 到指定目录,然后运行 jar。

    比如说 cd /var/mc/server1,然后执行 java -jar ......就会在 server1 这个目录里面生成服务端数据,cd 到 server2 再启动 jar 又会在 server2 文件夹里面生成数据和文件。

    启动脚本是一个 shell 文件,如果只在里面写 java -jar.....就必须每次都 cd 到目录再运行 sh 文件来启动服务,在 sh 中用 cd 又会出现目录找不到的问题(还没有验证开机自动运行 sh 或 crontab 运行会发生什么)

    请问有经验的 v 友是怎么做到开机自启以及在指定目录运行服务端的(不要谈面板)
    21 条回复    2019-08-20 12:24:19 +08:00
    misaka19000
        1
    misaka19000  
       2019 年 8 月 18 日
    没懂什么意思

    java -jar 使用绝对路径不行吗,或者指定文件路径不也可以?标准输出的话重定向一下就可以了
    jybox
        3
    jybox  
       2019 年 8 月 18 日
    看你用的是 systemd、init 还是 upstart,查对应文档。

    或者 crontab 里面 @reboot (详见文档)
    starsriver
        4
    starsriver  
    OP
       2019 年 8 月 18 日 via Android
    @misaka19000 标题没表达清楚。

    打个比方:我的地图文件,插件都在 a 目录里面放着,这时候 cd 到 a 目录再启动 jar 就是正常的服务,但是如果我在 b 目录里面运行 jar,就会在 b 目录里面生成一套新的数据,相当于启动了一个全新的服务端。

    我想让 linux 开机的时候自动启动服务端,这就需要脚本实现了。和 win 的 bat 不一样,win 执行 bat 的时候默认路径就是 bat 所在目录,启动的服务也是 bat 目录下的数据文件,但是 shell 脚本执行的时候会有意思,如果我在 xshell 窗口运行 shell 脚本,就不能通过脚本访问到 a 目录,这时候运行 jar 就会导致在 b 目录生成新文件。虽然 mc 服务是启动了,但是地图和玩家数据是位于 a 文件夹的。
    misaka19000
        5
    misaka19000  
       2019 年 8 月 18 日
    简单,在 shell 中找到目标文件的路径,之后进入这个目录就行
    starsriver
        6
    starsriver  
    OP
       2019 年 8 月 18 日 via Android
    @misaka19000

    #!/bin!sh
    cd /.....

    这个 cd 没有用的。。
    gerardyang
        7
    gerardyang  
       2019 年 8 月 18 日 via Android
    @starsriver set 一个环境变量啊
    KasuganoSoras
        8
    KasuganoSoras  
       2019 年 8 月 19 日   2
    # vim /etc/systemd/system/minecraft.service

    [Unit]
    Description=Minecraft Server
    Wants=network-online.target
    After=network-online.target

    [Service]
    User=root
    WorkingDirectory=/<服务端目录>/
    LimitNOFILE=4096
    PIDFile=/var/run/minecraft/server.pid
    ExecStart=/usr/bin/java -Xmx 最大内存 M -Xms 最小内存 M -jar <jar 名字>
    Restart=on-failure
    StartLimitInterval=600

    [Install]
    WantedBy=multi-user.target

    # systemctl daemon-reload
    # systemctl enable minecraft --now

    完事了
    itechify
        9
    itechify  
    PRO
       2019 年 8 月 19 日 via Android
    开机你自己怎么敲命令,就写一个脚本到 systemd service 服务上 enabled 它或者编辑 /etc/ rc.local 执行 shell 脚本吧,注意环境变量一致和尽量使用绝地路径
    ech0x
        10
    ech0x  
       2019 年 8 月 19 日 via iPhone
    systemd
    misaka19000
        11
    misaka19000  
       2019 年 8 月 19 日
    cd $(dirname ${0})

    搞定
    starsriver
        12
    starsriver  
    OP
       2019 年 8 月 19 日 via Android
    @misaka19000 我傻了想死一会儿。

    忘了 dos 的编码和 unix 不一样。。
    alphatoad
        13
    alphatoad  
       2019 年 8 月 19 日 via iPhone
    systemd
    des
        14
    des  
       2019 年 8 月 19 日 via Android
    WorkingDirectory 正解
    Z1on
        15
    Z1on  
       2019 年 8 月 19 日 via Android
    试试 docker ?
    no1xsyzy
        16
    no1xsyzy  
       2019 年 8 月 19 日
    #12 啊哈,我猜是 / 和 \ 搞错了
    verdad
        17
    verdad  
       2019 年 8 月 19 日 via iPad
    请尊重历史,用 GNU/Linux。“ Linux 系统”是错误的。
    @no1xsyzy @0x4F5DA2 @explore2233 @nguoidiqua @DIYff
    no1xsyzy
        18
    no1xsyzy  
       2019 年 8 月 19 日
    @verdad 那我明确说了,你修正的方向根本不对。
    应该更正 Linux 为 *nix 或者 Unix-like 或者 POSIX
    现在讨论的不是某个特定项目或者特定完整系统,而是在这套规范上的应用。
    你根本不尊重 BSD、alpine、musl、busybox、herd、OS/2、HP-UX。
    verdad
        19
    verdad  
       2019 年 8 月 20 日 via iPad
    照你的意思,我说句“老师好”就不尊重父母了?
    @no1xsyzy @0x4F5DA2 @explore2233 @nguoidiqua @DIYff
    no1xsyzy
        20
    no1xsyzy  
       2019 年 8 月 20 日
    @verdad 打个比方,A 对其伯伯喊叔叔好,你非要纠正成老师好?你这算尊重吗?
    另外,你有必要把所有人都带上吗?
    no1xsyzy
        21
    no1xsyzy  
       2019 年 8 月 20 日
    @verdad 已 Red
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4173 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 03:53 PVG 11:53 LAX 19:53 JFK 22:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86