这里写目录标题
- 1. 在Ubuntu 20.04中设置开机自启动脚本
- 2. 取消上面的命令
1. 在Ubuntu 20.04中设置开机自启动脚本
在Ubuntu 20.04中设置开机自启动脚本,您可以使用systemd
服务来实现。下面是如何将您的脚本设置为开机自启动的步骤:
- 创建systemd服务文件
首先,您需要为您的脚本创建一个systemd服务文件。您可以在/etc/systemd/system/
目录下创建一个新的服务文件,例如orbbec-ros-install.service
。
打开终端并输入以下命令来创建和编辑服务文件:
sudo nano /etc/systemd/system/orbbec-ros-install.service
然后,在打开的文件中输入以下内容:
[Unit]
Description=Orbbec ROS SDK install script
After=network.target[Service]
Type=oneshot
ExecStart=/bin/bash -c "cd ~/orbbec_ws/src/orbbec-ros-sdk/script && sudo bash install.sh"[Install]
WantedBy=default.target
注意:这里我们使用了Type=oneshot
,因为您的脚本看起来是一个一次性任务,而不是一个持续运行的服务。如果您需要持续运行的服务,可能需要更改此设置。
- 重新加载systemd并启用服务
保存并关闭文件后,您需要告诉systemd关于这个新的服务文件:
sudo systemctl daemon-reload
然后,启用该服务以使其在启动时自动运行:
sudo systemctl enable orbbec-ros-install.service
- 注意
- 使用
sudo
在systemd服务中通常是不推荐的,因为它可能导致权限和安全性问题。如果可能的话,尝试修改您的install.sh
脚本,使其不需要sudo
权限来运行。例如,您可以确保所有必要的文件和目录都有正确的权限。 - 在
ExecStart
中,我们使用了/bin/bash -c
来执行命令。这是为了确保我们首先cd
到正确的目录,然后再执行脚本。但请注意,这仍然不是最佳实践,因为cd
命令只影响当前shell的上下文,而不会影响后续命令。更好的做法是将完整的路径用于install.sh
,并确保它具有正确的执行权限。
最后,重新启动您的计算机,您的脚本应该会自动运行。您可以使用以下命令检查服务的状态:
sudo systemctl status orbbec-ros-install.service
2. 取消上面的命令
要取消之前设置的开机自启动脚本,您可以按照以下步骤操作:
- 禁用并停止服务
首先,您需要禁用并停止之前设置的systemd
服务。使用以下命令来禁用并停止服务:
sudo systemctl stop orbbec-ros-install.service
sudo systemctl disable orbbec-ros-install.service
stop
命令会立即停止正在运行的服务(如果它正在运行的话),而disable
命令会确保服务在下次系统启动时不会自动启动。
- 删除服务文件
接下来,您可以删除之前创建的systemd
服务文件。使用以下命令:
sudo rm /etc/systemd/system/orbbec-ros-install.service
这将从系统中删除服务文件,从而完全移除开机自启动的配置。
- 重新加载systemd
为了确保systemd重新加载其配置并识别到服务文件已被删除,您可以再次运行以下命令:
sudo systemctl daemon-reload
这样,当您下次重启计算机时,之前设置的开机自启动脚本就不会再运行了。
请注意,取消开机自启动只是停止脚本在系统启动时自动执行。如果脚本之前已经被执行过并对系统做了某些更改,那么这些更改仍然会保留在系统中。如果需要撤销这些更改,您可能需要手动执行一些反向操作来恢复系统的状态。