Ubuntu18.04设置开机自启动程序

在 Ubuntu 18.04 中,可以通过多种方式设置脚本(如 `.sh` 文件)开机自启动。以下是几种常见的方法:

### 方法 1:使用 `rc.local`(适用于简单的脚本)
1. **编辑 `/etc/rc.local` 文件**:
   - 打开终端,输入以下命令编辑文件:
     ```bash
     sudo nano /etc/rc.local
     ```
   - 在 `exit 0` 之前添加需要执行的脚本命令。例如:
     ```bash
     /path/to/your/script.sh &
     ```
     (`&` 表示在后台运行脚本)

2. **赋予 `/etc/rc.local` 可执行权限**:
   - 如果文件没有执行权限,运行以下命令:
     ```bash
     sudo chmod +x /etc/rc.local
     ```

3. **重启系统**:
   - 重启后,脚本将自动运行。

---

### 方法 2:使用 `systemd` 服务(推荐)
1. **创建服务文件**:
   - 在 `/etc/systemd/system/` 目录下创建一个新的服务文件。例如:
     ```bash
     sudo nano /etc/systemd/system/myscript.service
     ```

2. **编辑服务文件**:
   - 添加以下内容:
     ```ini
     [Unit]
     Description=My Custom Script
     After=network.target

     [Service]
     ExecStart=/path/to/your/script.sh
     Restart=on-failure

     [Install]
     WantedBy=multi-user.target
     ```
   - 替换 `/path/to/your/script.sh` 为你的脚本路径。

3. **赋予脚本可执行权限**:
   - 确保脚本有执行权限:
     ```bash
     sudo chmod +x /path/to/your/script.sh
     ```

4. **启用服务**:
   - 启用服务以使其开机自启动:
     ```bash
     sudo systemctl enable myscript.service
     ```

5. **启动服务**:
   - 立即启动服务(无需重启):
     ```bash
     sudo systemctl start myscript.service
     ```

6. **检查服务状态**:
   - 确认服务已正常运行:
     ```bash
     sudo systemctl status myscript.service
     ```

---

### 方法 3:使用 `crontab`(适用于用户级脚本)
1. **编辑当前用户的 crontab**:
   - 打开终端,输入以下命令:
     ```bash
     crontab -e
     ```

2. **添加开机任务**:
   - 在文件末尾添加以下行:
     ```bash
     @reboot /path/to/your/script.sh
     ```
   - 替换 `/path/to/your/script.sh` 为你的脚本路径。

3. **保存并退出**:
   - 保存文件后,cron 会在每次系统启动时运行脚本。

---

### 方法 4:使用桌面环境的启动应用程序(适用于图形界面)
1. **打开“启动应用程序”**:
   - 在 Ubuntu 桌面环境中,搜索并打开“启动应用程序”。

2. **添加新条目**:
   - 点击“添加”按钮,填写以下信息:
     - **名称**:自定义名称(如“My Script”)。
     - **命令**:脚本路径(如 `/path/to/your/script.sh`)。
     - **注释**:可选描述。

3. **保存**:
   - 保存后,脚本将在用户登录时自动运行。

---

### 总结
- **`rc.local`**:简单易用,适合简单的脚本。
- **`systemd`**:功能强大,推荐用于系统级服务。
- **`crontab`**:适合用户级脚本。
- **桌面环境启动应用程序**:适合图形界面下的用户脚本。

### 配置ROS节点在Ubuntu 18.04系统中实现开机自动运行 为了使ROS节点能够在Ubuntu 18.04系统启动时自动运行,可以利用`systemd`服务文件来创建一个定制的服务。这允许操作系统管理该进程的生命周期。 #### 创建Service文件 首先,在`/etc/systemd/system/`目录下创建一个新的`.service`文件用于定义要作为服务运行的应用程序: ```bash sudo nano /etc/systemd/system/my_ros_node.service ``` 在这个文件里输入如下内容并保存退出: ```ini [Unit] Description=My ROS Node Service After=network.target [Service] User=<your_username> WorkingDirectory=/home/<your_username>/catkin_ws/ ExecStart=/opt/ros/melodic/env.sh roslaunch my_package my_launch_file.launch Restart=on-failure [Install] WantedBy=multi-user.target ``` 请注意替换上述模板中的占位符为实际路径和用户名[^1]。 #### 设置环境变量 由于`systemd`不会加载用户的shell profile脚本,因此需要确保所有的依赖项都已正确初始化。一种方法是在`ExecStart`指令前添加一条命令来手动导入必要的环境设置: ```ini Environment="ROS_MASTER_URI=http://localhost:11311" Environment="ROS_HOSTNAME=localhost" ExecStartPre=/bin/bash -c 'source /opt/ros/melodic/setup.bash && source /home/<your_username>/catkin_ws/devel/setup.bash' ``` 这些行应该被加入到之前创建的服务文件内[^2]。 #### 启用并启动服务 完成以上配置之后,通过下面两条命令启用新创建的服务,并立即激活它以便即时生效: ```bash sudo systemctl enable my_ros_node.service sudo systemctl start my_ros_node.service ``` 现在每当计算机重启时,指定的ROS节点将会自动启动[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值