Ubuntu18.04 设置开机自启动 jar包

本文介绍了解决Linux系统中使用rc.local进行jar包自启动遇到的问题。通过指定完整的JDK路径和确保jar包路径正确,成功实现了开机自启动。提供了两种可行的脚本写法。

参考博文:

按照这位博主的步骤,成功的打印出了文件的内容,因为我的目的是开机自启动 jar 包,一开始直接在rc.local里写的是

nohup java -jar demo-0.0.1-SNAPSHOT.jar &

但是自启动失败了,登录到root用户,输入下面的指令查看服务状态

systemctl status rc-local.service

结果发现 运行状态为 failed,而且报错  “nohup: 无法运行命令“java“: 没有那个文件或目录”

结果发现是脚本找不到 jdk 所在位置,因此需要修正两点:

  • 写全 jdk 所在位置
  • 写全jar包所在目录(或者 先cd 到jar包所在目录)

写法一

nohup /usr/local/jdk1.8.0_131.bin/java -jar /usr/local/proj/static/demo-0.0.1-SNAPSHOT.jar &

写法二

 

cd /usr/local/proj/static/
nohup /usr/local/jdk1.8.0_131.bin/java -jar demo-0.0.1-SNAPSHOT.jar &
### 配置 Ubuntu 18.04 应用程序开机自启 #### 使用 `rc.local` 文件实现开机自启动服务 对于希望以传统方式设置开机自启动的应用,在 `/etc/systemd/system/` 下创建名为 `rc-local.service` 的文件来定义服务行为[^2]: ```bash sudo vim /etc/systemd/system/rc-local.service ``` 编辑后的文件内容应类似于下面这样,确保 `[Install]` 和 `[Service]` 节点下的路径指向实际存在的脚本或命令。 接着修改并保存位于 `/etc/rc.local` 中的内容,该位置用于放置具体的执行指令列表。注意保持最后一行为空白以便正常结束进程: ```bash #!/bin/bash # rc.local # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local gnome-terminal -x sh -c "/home/user/script.sh; exec bash" ``` 赋予此文件可执行权限,并启用及启动对应的服务单元: ```bash sudo chmod +x /etc/rc.local sudo systemctl enable rc-local sudo systemctl start rc-local.service ``` 验证服务状态以确认一切运作良好: ```bash sudo systemctl status rc-local.service ``` #### 利用图形界面工具设定应用开机运行 另一种更为直观的方式是在桌面环境中通过 GUI 完成相同目标。打开“启动应用程序首选项”,点击添加按钮后输入名称与描述信息;最重要的是指定要随系统一同加载的命令字符串,例如让终端模拟器按照特定参数调用 shell 脚本[^3]: ```bash gnome-terminal -x /home/xavier/result.sh ``` 这种方法适用于那些不需要超级用户权限即可独立工作的个人化小程序或是快捷操作集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值