Linux系统【Ubuntu】开机自启脚本及配置

1、使用vim命令在/etc/init.d目录下新建一个xx.sh,文件名可自定义,以test.sh为例

vim /etc/init.d/test.sh 也可以用 touch test.sh 命令创建文件

复制代码:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          test.sh
# Required-start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the test.sh daemon
# Description:       starts test.sh using start-stop-daemon
### END INIT INFO
# 睡眠120秒 (如果不需要,删除既可)
sleep 120
# 防止jdk加载慢
export JAVA_HOME=/home/jdk/jdk1.8.0_321
export PATH=${JAVA_HOME}/bin:$PATH
cd  /home/directory/
nohup java -jar test-0.0.1-SNAPSHOT.jar --spring.config.location=./config/application.yml > nohup.out 2>&1 &     

注意:上面的注释要存在,不然不生效。

说明:
① /home/jdk/jdk1.8.0_321 为安装的jdk路径,根据自己的安装路径配置。
② /home/directory/ 为存放jar包的路径,根据自己放置的路径配置。
③ test-0.0.1-SNAPSHOT.jar 为jar包名称。
④ --spring.config.location=./config/application.yml 指定jar包的配置文件。
⑤ nohup.out 是日志输出文件名。

编辑完成后,按ESC键,输入:wq 按回车保存并退出。

2、保存成功以后,设置文本权限,否则不生效

sudo chmod 755 /etc/init.d/test.sh 

3、将命令脚本添加到启动脚本中去

cd /etc/init.d
sudo update-rc.d test.sh defaults

说明:如果需要设置启动优先级: 100表示优先级,数越大,执行的越晚 sudo update-rc.d test.sh defaults 100

4、如需移除自启动,运行以下命令

cd /etc/init.d
sudo update-rc.d -f test.sh remove

5、输入 reboot 命令重启服务器,使用命令查看jar包是否已经成功自启动。

ps -ef|grep java

update-rc.d 的详细参数

使用 update-rc.d 命令需要指定脚本名称和一些参数,它的格式看起来是这样的(需要在 root 权限下):

  • update-rc.d [-n] [-f] <basename> remove
  • update-rc.d [-n] <basename> defaults
  • update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
  • update-rc.d <basename> start|stop <NN> <runlevels>
  • -n: not really
  • -f: force

其中:

  • disable|enable:代表脚本还在/etc/init.d中,并设置当前状态是手动启动还是自动启动。
  • start|stop:代表脚本还在/etc/init.d中,开机,并设置当前状态是开始运行还是停止运行。(启用后可配置开始运行与否)
  • NN:是一个决定启动顺序的两位数字值。(例如90大于80,因此80对应的脚本先启动或先停止)
  • runlevels:则指定了运行级别。

参考文献

Linux 下,我们可以通过编写一个自启脚本来实现开机自启动某个程序或服务。以下是实现步骤: 1. 编写启动脚本 在 /etc/init.d 目录下创建一个新的脚本文件(以 .sh 结尾),比如我们要启动一个名为 myapp 的程序,可以创建一个名为 myapp.sh 的脚本文件。在脚本中编写启动 myapp 的命令,如下所示: ``` #!/bin/bash # description: myapp startup script # chkconfig: 2345 20 80 case "$1" in start) echo "Starting myapp..." /path/to/myapp start ;; stop) echo "Stopping myapp..." /path/to/myapp stop ;; restart) echo "Restarting myapp..." /path/to/myapp restart ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 ``` 其中,chkconfig 一行是必须的,它指定了自启动的级别及启动顺序。2345 表示在 2、3、4、5 级别下启动,20 表示启动顺序为 20,80 表示停止顺序为 80。 2. 添加执行权限 使用 chmod 命令为脚本文件添加执行权限,如下所示: ``` chmod +x /etc/init.d/myapp.sh ``` 3. 添加到系统服务 使用 chkconfig 命令将脚本文件添加到系统服务中,如下所示: ``` chkconfig --add myapp.sh ``` 执行完这个命令后,脚本文件将自动添加到系统服务中。可以使用 chkconfig --list 命令查看所有已经添加到系统服务中的脚本文件。 4. 启用自启动 使用 chkconfig 命令启用自启动,如下所示: ``` chkconfig myapp.sh on ``` 执行完这个命令后,myapp 会在系统启动时自动运行。 注意:以上步骤仅适用于使用 SysVinit 系统初始化程序的 Linux 发行版,如 CentOS、Red Hat、Debian、Ubuntu 等。对于使用 systemd 系统初始化程序的发行版,需要使用 systemctl 命令来管理服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值