如果无法连接到Xserver,则使命令在没有gui的情况下运行

我通过ssh在使用UNIX屏幕的无头机器上运行minecraft服务器(使用openjdk 11的spiggot)。我可以连接到备用计算机上的Xserver以显示正确的gui。我的bash脚本:

#!/bin/bash
export DISPLAY=$@
while true
do
java -server -Xmx1400M -Xms1100M -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=45 -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=50 -XX:+AggressiveOpts -jar spigot-1.16.1.jar
echo restarting in 5 seconds. Ctrl-C to cancel.
sleep 5
done

我是这样运行的:$ ./start.sh 192.168.x.x:y,其中x.x是本地ip的2个数字,y是X11端口。我也可以使用主机名。

这在Xserver运行时可以无缝运行

我的问题是,当Xserver停止时(例如,我关闭笔记本电脑),它给出了错误,而不是无头运行:

OpenJDK Server VM warning: Option AggressiveOpts was deprecated in version 11.0 and will likely be removed in a future release.
Loading libraries,please wait...
[17:28:09] [main/INFO]: Environment: authHost='https://authserver.mojang.com',accountsHost='https://api.mojang.com',sessionHost='https://sessionserver.mojang.com',name='PROD'
[17:28:13] [main/INFO]: Reloading ResourceManager: Default,bukkit
[17:28:20] [Worker-Main-4/INFO]: Loaded 7 recipes
[17:28:31] [main/INFO]: [STDERR]: java.awt.AWTError: Can't connect to X11 window server using '192.168.1.1:1' as the value of the DISPLAY variable.
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102)
[17:28:31] [main/INFO]: [STDERR]:   at java.base/java.security.accessController.doPrivileged(Native Method)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61)
[17:28:31] [main/INFO]: [STDERR]:   at java.base/java.lang.Class.forName0(Native Method)
[17:28:31] [main/INFO]: [STDERR]:   at java.base/java.lang.Class.forName(Class.java:315)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:232)
[17:28:31] [main/INFO]: [STDERR]:   at java.base/java.lang.Class.forName0(Native Method)
[17:28:31] [main/INFO]: [STDERR]:   at java.base/java.lang.Class.forName(Class.java:315)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583)
[17:28:31] [main/INFO]: [STDERR]:   at java.base/java.security.accessController.doPrivileged(Native Method)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582)
[17:28:31] [main/INFO]: [STDERR]:   at java.desktop/javax.swing.UIManager.getSystemLookAndFeelClassname(UIManager.java:661)
[17:28:31] [main/INFO]: [STDERR]:   at net.minecraft.server.v1_16_R1.ServerGUI.a(ServerGUI.java:44)
[17:28:31] [main/INFO]: [STDERR]:   at net.minecraft.server.v1_16_R1.DedicatedServer.bb(DedicatedServer.java:430)
[17:28:31] [main/INFO]: [STDERR]:   at net.minecraft.server.v1_16_R1.Main.lambda$2(Main.java:181)
[17:28:31] [main/INFO]: [STDERR]:   at net.minecraft.server.v1_16_R1.MinecraftServer.a(MinecraftServer.java:170)
[17:28:31] [main/INFO]: [STDERR]:   at net.minecraft.server.v1_16_R1.Main.main(Main.java:169)
[17:28:31] [main/INFO]: [STDERR]:   at org.bukkit.craftbukkit.Main.main(Main.java:202)
[17:28:31] [Thread-1/INFO]: Stopping server
[17:28:31] [Thread-1/INFO]: Saving worlds
restarting in 5 seconds. Ctrl-C to cancel.

Xserver脱机时是否可以使服务器无头运行(即仅通过ssh客户端)?

我希望它是一个bash解决方案,因为我不知道任何Java。 (java)命令的标记会更好!

iCMS 回答:如果无法连接到Xserver,则使命令在没有gui的情况下运行

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1989585.html

大家都在问