什么是run.sh

在Java开发中,如何在Servcie随机器启动时,自动启动指定的Java应用程序呢?可能很多同学会选择编写一个Windows服务,但是这样需要编写独立的启动脚本,比较麻烦。而在Linux中,可以使用Systemd或者rc.local来解决这个问题。而在shell命令中,可以使用run.sh脚本。

如何添加run.sh

在Java应用程序的入口目录下,创建run.sh脚本,并将需要启动的Java应用程序的启动命令,写入到run.sh文件中。例如,下面是一个简单的run.sh脚本:

``` #!/bin/bash SERVICE_NAME=myApp PATH_TO_JAR=/mnt/myApp/myApp.jar PORT=8000 PARAMS="-Dserver.port=$PORT" pid=$(ps -ef | grep $PATH_TO_JAR | grep -v grep | awk '{print $2}') if [ -n "$pid" ]; then echo "The $SERVICE_NAME service is already running." else echo "Starting the $SERVICE_NAME service..." nohup java -jar $PATH_TO_JAR $PARAMS > myApp.log & fi ```

其中,SERVICE_NAME是服务的名称,PATH_TO_JAR是Java应用程序的jar包路径,PORT是应用程序绑定的端口号。对于应用程序需要的其他参数,可以添加到PARAMS变量上。接下来,使用chmod命令将这个脚本授予可执行权限:

``` chmod +x run.sh ```

将run.sh脚本添加到/etc/rc.local文件中,并设置开机启动:

``` vim /etc/rc.local ```

在文件中添加如下一行:

``` su user1 -c '/mnt/myApp/run.sh' ```

其中,user1是Java应用程序需要使用的用户。

运行run.sh脚本

一旦run.sh脚本添加到了开机启动后,可以通过如下命令来手动启动Java应用程序:

``` /mnt/myApp/run.sh ```

在控制台执行这条命令即可自动启动Java应用程序。

总结

通过添加run.sh脚本,可以在Linux系统中实现自动启动Java应用程序,无需单独编写服务脚本,非常方便。希望本文对您有所帮助。