ubuntu18.04.5设置开机脚本报“/etc/rc.local: 17: /etc/rc.local: exit 0: not found”的问题

在Ubuntu18.04.5中配置开机脚本时遇到错误"/etc/rc.local: 17: /etc/rc.local: exit 0: not found"。该问题源于/etc/rc.local文件中的exit 0命令。删除exit 0并重新编译后,开机脚本执行恢复正常。

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

ubuntu18.04.5设置开机脚本报“/etc/rc.local: 17: /etc/rc.local: exit 0: not found”的问题

最近因工作需要,在编写代码时经常需要使用Android Studiu自带的虚拟机,但是虚拟机本身需要修改权限,使用chmod修改权限又只能暂时生效,因此想要设置一个开机脚本。

关于开机脚本的设置流程请参考Ubuntu16、18 开机 自启动脚本或命令,这里就不再复制粘贴一次了。

问题是在修改之后,使用systemctl命令不通过,报错如下

4月 20 09:56:35 xxx-OptiPlex-5080 rc.local[9212]: /etc/rc.local: 17: /etc/rc.local: exit 0: not found
4月 20 09:56:35 xxx-OptiPlex-5080 systemd[1]: rc-local.service: Control process exited, code=exited status=127
4月 20 09:56:35 xxx-OptiPlex-5080 systemd[1]: rc-local.service: Failed with result 'exit-code'.
4月 20 09:56:35 xxx-OptiPlex-5080 systemd[1]: Failed to start /etc/rc.local Compatibility.

经查证,最后发现是/etc/rc.local中的exit 0出了问题,将exit 0删除后重新编译即可

附:/etc

<think>好的,用户想修改rc.local文件来实现软件开机自启动。首先,我需要回忆一下相关的步骤和可能遇到的问题。根据之前的引用内容,有几个关键点需要注意。 首先,用户可能需要检查rc.local文件是否具有可执行权限。引用[2]和[3]都提到,默认情况下rc.local可能没有执行权限,需要使用chmod +x命令添加权限。这是第一步,因为如果文件不可执行,系统不会运行其中的命令。 接下来是编辑rc.local文件本身。用户需要以root权限打开文件,比如使用sudo nano或者vim。然后,在文件中添加需要启动的命令或本。这里需要注意的是,引用[2]强调命令应该能在无登录环境下运行,可能需要使用绝对路径,避免依赖环境变量。 然后,考虑到现代Linux系统可能使用systemd,引用[1]和[4]提到可能需要处理systemd的兼容性问题。比如,确保rc-local服务已启用并启动,否则即使配置了rc.local,也可能不生效。用户可能需要创建或启用相应的服务单元,如rc-local.service,并确保其配置正确。 另外,用户可能会遇到本权限的问题,除了rc.local本身的权限外,启动的本也需要可执行权限,如引用[3]中提到的chmod +x startall.sh。这也是常见的问题点,需要提醒用户检查。 还有,用户可能在配置后没有生效,这时候需要检查日志,使用systemctl status rc-local.service或者journalctl来查看错误信息,帮助排查问题。这有助于快速定位是权限问题、路径问题还是其他配置错误。 总结步骤应该是:1. 确保rc.local可执行;2. 编辑文件添加命令;3. 处理systemd服务;4. 检查本权限;5. 测试和调试。同时,用户可能需要了解不同Linux发行版(如Ubuntu和CentOS)的差异,比如文件路径可能不同,或者systemd配置略有区别。 最后,生成相关问题的时候,需要考虑用户可能的后续疑问,比如权限问题、systemd替代方法、日志查看等,这些都是用户可能会遇到的进一步问题。</think>### 如何配置`rc.local`实现开机自启动 以下是分步操作说明(以Ubuntu/CentOS为例): 1. **检查`rc.local`文件权限** - 默认情况下,`rc.local`可能没有可执行权限。需执行: ```bash sudo chmod +x /etc/rc.d/rc.local # CentOS sudo chmod +x /etc/rc.local # Ubuntu ``` 权限问题是最常见的配置失败原因[^2][^3]。 2. **编辑`rc.local`文件** - 使用`sudo`权限编辑文件: ```bash sudo nano /etc/rc.local # Ubuntu sudo nano /etc/rc.d/rc.local # CentOS ``` - 在`exit 0`语句前添加需要执行的命令,例如: ```bash /absolute/path/to/your_script.sh & ``` **注意**: - 必须使用绝对路径(避免依赖环境变量); - 末尾的`&`表示后台运行,防止阻塞启动流程。 3. **处理systemd兼容性问题** - 如果系统使用`systemd`(如Ubuntu 18.04+或CentOS 7+),需确保`rc-local.service`已启用: ```bash # 创建服务文件(若不存在) sudo nano /etc/systemd/system/rc-local.service ``` 写入以下内容: ```ini [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 RemainAfterExit=yes [Install] WantedBy=multi-user.target ``` - 启用服务并启动: ```bash sudo systemctl enable rc-local.service sudo systemctl start rc-local.service ``` 该方法能确保`rc.local`在systemd环境下生效[^1][^4]。 4. **验证配置** - 重启系统后检查服务状态: ```bash systemctl status rc-local.service ``` - 查看日志确认命令是否执行: ```bash journalctl -u rc-local.service ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值