1

我正在尝试制作一个简单的文件,这样我就可以在 SSH 中调用它,它会启动我的 minecraft 服务器。我尝试使用以下代码制作一个名为 start.bat 的批处理文件:

java -Xmx512M -Xmx512M -jar craftbukkit-1.2.5-R1.0.jar nogui

但是,当我在 SSH 中运行它时:

$ cd /我的世界/server_1/

$开始.bat

SSH 返回它是一个无效或未知的命令。有没有其他方法可以让我快速命令/文件来启动我的服务器?我将使用哪些文件扩展名来使其正常工作?如果我将该 java 命令粘贴到 SSH 中并运行它,它会起作用,但我宁愿有一个文件。

4

2 回答 2

2

默认情况下,当前工作目录包含在您PATH的目录中,因为它在多用户系统上存在安全风险。(即使在单用户机器上也有潜在的烦恼。)您将使用它./start.bat来启动程序。

由于您使用的是 Windows 命名约定,我想您也忘记设置执行模式位 - 而且您可能还忘记了文件顶部的shebang 行。

试试这个:

#!/bin/sh
java -Xmx512M -Xmx512M -jar craftbukkit-1.2.5-R1.0.jar nogui

chmod 500在这个文件上运行。(严格来说,555如果您不介意机器上的其他人执行文件,也可以工作。但他们不需要,所以不要让他们。)有关chmod(1)模式的更多详细信息,请参见手册页 - 1bits 表示可执行2bits 表示可写,而4bits 表示readable- 因此,5可执行和可读的。

然后,当你想运行脚本时,像这样运行它:

cd /Minecraft/server_1
./start.bat

注意./-- 这意味着 shell 应该开始在当前工作目录中搜索可执行程序。(可能是./bin/start.bat您当前的工作目录有一个包含可执行文件的bin子目录。)start.bat

于 2012-04-25T03:17:28.537 回答
2

start.bat 是可执行文件吗?确保 #!/bin/sh 作为文件的第一行。该目录也可能不在路径中,所以试试这个:

    $ chmod 555 start.bat
    $ ./start.bat
于 2012-04-25T03:17:31.877 回答