我正在尝试制作一个简单的文件,以便我可以在SSH中调用它,它将启动我的Minecraft服务器。 我尝试使用以下代码创建一个名为start.bat的批处理文件:
java -Xmx512M -Xmx512M -jar craftbukkit-1.2.5-R1.0.jar nogui
但是,当我在SSH中运行时:
$ cd / Minecraft / server_1 /
$ start.bat
SSH返回它是无效或未知的命令。有没有其他方法我可以快速命令/文件来启动我的服务器?我将使用哪些文件扩展名来实现此功能?如果我在SSH中粘贴该java命令并运行它,它可以工作,但我宁愿有一个文件。
答案 0 :(得分:2)
默认情况下,当前工作目录 not 包含在PATH
中,因为它在多用户系统上存在安全风险。 (即使在单用户的计算机上也存在潜在的烦恼。)您可以使用./start.bat
来启动该程序。
由于您使用的是Windows命名约定,我认为您也忘了设置执行模式位 - 您可能也忘记了文件顶部的shebang line。
试试这个:
#!/bin/sh
java -Xmx512M -Xmx512M -jar craftbukkit-1.2.5-R1.0.jar nogui
在此文件上运行chmod 500
。 (严格地说,555
也可以工作,如果你不介意机器上的其他人执行文件。但他们不需要,所以不要让他们。)见{{1}有关模式的更多详细信息,请参阅manpage - chmod(1)
位表示可执行,1
位表示可写,2
位表示4
- 因此,readable
可执行且可读。
然后,当您想要运行脚本时,请按以下方式运行:
5
注意cd /Minecraft/server_1
./start.bat
- 这意味着shell应该开始搜索当前工作目录中的可执行程序。 (如果当前工作目录的./
子目录带有./bin/start.bat
可执行文件,则可能为bin
。)
答案 1 :(得分:2)
start.bat可执行文件吗?确保将#!/ bin / sh作为文件的第一行。此目录可能不在路径中,因此请尝试:
$ chmod 555 start.bat
$ ./start.bat