我正在尝试在服务器启动时运行一个命令。我尝试将该命令添加到用户数据部分:
#!/bin/bash
cd /home/ec2-user
java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar spigot-1.14.4.jar
但是这仍然不起作用,所以除了用户数据之外,我还在 /etc/ 中的 rc.local 文件中添加了相同的命令:
touch /var/lock/subsys/local
cd /home/ec2-user
java -Xms1G -Xmx1G -XX:+UseConcMarkSweepGC -jar spigot-1.14.4.jar
但是,这也不起作用。我是否遗漏了什么?
此外,我正在运行的命令将一直运行直到服务器结束。
答案1
UserData 仅在实例创建后第一次启动时执行。后续重启或关闭/启动时不会执行。
最好创建一个systemd 单元文件为您的应用启用它。它可以做一些智能操作,比如在应用失败时重新启动应用等。
例如,请看这里:创建和修改 systemd 单元文件
希望有帮助:)