Centos7 如何设置开机启动某个程序

本文详细介绍了如何在CentOS7系统中设置Java程序sentinel-dashboard的开机启动,包括编写启动脚本、指定Java路径、添加执行权限、编辑rc.local以及故障排查步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以设置自动启动sentinel-dashboard作为案例

要在CentOS 7上设置开机启动一个Java程序,你可以按照以下步骤进行操作:

1. 进入应用程序的目录

cd /usr/local

vim sentinel-dashboard.sh

2. 在sentinel-dashboard.sh 文件中 输入启动脚本

nohup java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar /usr/local/sentinel-dashboard.jar >/usr/local/log/out.log 2>&1 &

解释一下,这里nohup 是表示后台运行程序,2>&1:在这里,2代表标准错误输出,而1代表标准输出。2>&1的意思是“将标准错误输出重定向到标准输出的同一位置”。由于标准输出已经被重定向到out.log文件,因此这实际上意味着标准错误输出也被重定向到该文件。   

注意:我的Centos配置了Java环境,单丝放在 rc.local 中执行却不起作用,这点我没明白,所以上述命令跑一直失败,后来我猜想可能Java环境在这里失效,改成指定Java位置就可以了,服了

nohup /opt/software/jdk-17.0.9/bin/java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar /usr/local/sentinel-dashboard.jar >/usr/local/log/out.log 2>&1 &

3. 给sentinel-dashboard.sh添加执行权限

chmod 700 sentinel-dashboard.sh

4. 试一下,看看能不能正常启动

sh sentinel-dashboard.sh
试了,可以访问

5 设置开机启动

编辑vim /etc/rc.d/rc.local,在这个文件的最后面加上

vim /etc/rc.d/rc.local

6、最后给 /etc/rc.d/rc.local 文件设置可执行权限才会生效

chmod +x /etc/rc.d/rc.local

7. 重启服务

reboot

8. 开机自启动失败,问题排查

 如果遇到开机启动失败问题可以运行下面这些命令进行调试,查看是否正常启动,如果status如下图这样说明启动成功了,如果失败的话,可以看看本文的第3步,检查是不是环境问题

systemctl status rc-local.service

systemctl start rc-local.service

systemctl stop rc-local.service

systemctl restart rc-local.service

### CentOS 中配置程序开机启动的方法 在 CentOS 系统中,可以通过多种方式实现程序开机启动功能。以下是几种常见的方法及其具体操作: #### 方法一:通过 systemd 创建服务单元文件 `systemd` 是现代 Linux 发行版中的初始化系统和服务管理器,在 CentOS 7 及更高版本中广泛使用。 1. **创建 `.service` 文件** 在 `/etc/systemd/system/` 目录下创建一个新的服务单元文件,例如 `myapp.service`。 使用以下命令创建并编辑该文件: ```bash sudo nano /etc/systemd/system/myapp.service ``` 2. **填写服务配置内容** 编辑文件时需指定程序路径、运行环境及其他参数。以下是一个典型的 Java 应用的服务配置示例[^2]: ```ini [Unit] Description=My Application Service After=network.target [Service] ExecStart=/path/to/java -jar /path/to/app.jar Restart=always User=myuser Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" [Install] WantedBy=multi-user.target ``` 3. **启用并启动服务** 完成配置后,执行以下命令以使服务生效: ```bash sudo systemctl daemon-reload sudo systemctl enable myapp.service sudo systemctl start myapp.service ``` #### 方法二:将脚本添加到 rc.local 对于简单的任务,可以直接修改 `/etc/rc.d/rc.local` 脚本,并将其设为可执行权限。 1. **编辑 rc.local 文件** 打开 `/etc/rc.d/rc.local` 并追加要启动程序命令: ```bash sudo nano /etc/rc.d/rc.local ``` 添加如下内容(假设需要启动某个 Python 程序): ```bash /usr/bin/python3 /path/to/script.py & ``` 2. **赋予脚本执行权限** 修改文件权限使其具有可执行属性: ```bash sudo chmod +x /etc/rc.d/rc.local ``` #### 方法三:利用 crontab 的 @reboot 功能 Cron 表支持一种特殊的触发条件——`@reboot`,用于定义系统重启后的自动任务。 1. **进入用户的 cron 表** 输入以下命令打开当前用户的定时任务列表: ```bash crontab -e ``` 2. **添加 reboot 启动项** 插入类似下面的一条记录来安排程序随系统一起加载: ```cron @reboot /bin/bash /path/to/startup.sh ``` 以上三种方案各有优劣,可根据实际需求选择合适的方式完成配置工作[^1]。 ```python print("Example of a simple startup script.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值