Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux启动时启动java程序(EC2实例)_Java_Linux_Amazon Ec2_Amazon Web Services - Fatal编程技术网

Linux启动时启动java程序(EC2实例)

Linux启动时启动java程序(EC2实例),java,linux,amazon-ec2,amazon-web-services,Java,Linux,Amazon Ec2,Amazon Web Services,我的服务器程序需要在EC2实例启动时启动。目前,我正在使用以下命令从SSH启动它: java -jar ~/DocumentManager/DocumentServer-0.2.jar 我尝试将其添加到.bashrc和/etc/rc.local文件中,但它们似乎只有在我使用ssh时才起作用 有人知道如何在计算机启动时启动我的应用程序实例吗 谢谢 Ben您可以创建如下脚本java\u server\u launch.sh: #! /usr/bin/sh PATH=/bin:/s

我的服务器程序需要在EC2实例启动时启动。目前,我正在使用以下命令从SSH启动它:

 java -jar ~/DocumentManager/DocumentServer-0.2.jar  
我尝试将其添加到.bashrc和/etc/rc.local文件中,但它们似乎只有在我使用ssh时才起作用

有人知道如何在计算机启动时启动我的应用程序实例吗

谢谢


Ben

您可以创建如下脚本
java\u server\u launch.sh

 #! /usr/bin/sh

    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
    JAVA=/usr/bin/java
    MY_SERVER=/home/your_username/DocumentManager/DocumentServer-0.2.jar
    USER=your_username
    /bin/su - $USER -c "$JAVA -jar $MY_SERVER &"
将脚本放在/etc/init.d目录下,然后使用以下命令:

update-rc.d java_server_launch.sh defaults
有关使用
手动更新rc.d
更新rc.d命令的详细信息

希望这有帮助

注意。

在命令末尾添加符号“&”)。 例如,在您的例子中,
java-jar~/DocumentManager/DocumentServer-0.2.jar&


这是一个老问题,但我的回答可能会对那些展望未来的人有所帮助。

您也可以将程序作为服务运行,在ec2容器重新启动时自动运行。下面的链接为我工作:


也许这有帮助:嗨,我试过了,但没用。我进去看了看正在运行的进程,但它不在那里。我需要在某个地方放一个启动脚本吗?@BenFlowers:hello,是的,在/etc/init.d目录下好的,所以基本上我创建了java_server_launch.sh文件,然后运行了你说的命令。还有什么我需要做的吗?(仍然不工作)谢谢你的帮助btw@BenFlowers:我编辑了我的帖子,顺便说一句,你可以看看/etc/init.d/skeleton文件,看看你如何使用它来满足你的需要。仍然没有工作,我可以告诉你,它很接近!!因此,我的jar文件位于~/DocumentManager/DocumentServer-0.2.jar,我的名字是ubuntu@(amazoninstance)。我将script.sh文件存储在/etc/init.d中,它看起来像这样:#/usr/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin JAVA=/usr/bin/JAVA MY_SERVER=~/DocumentManager/DocumentServer-0.2.jar USER=ubuntu/bin/su-$USER-c“$JAVA-jar$MY_SERVER&”并运行update rc.d script.sh默认值有什么线索我做错了吗?