rc.local文件中添加的命令不执行且rc-local.service启动失败怎么办80


大碗清秀
大碗清秀 2024-10-13 18:50:32 7010
分类专栏:问答 问题分类: 麒麟软件
已结题
2 个回答
  • 1、将/etc/rc.local的命令改成更加兼容的模式,将"#!/bin/sh"改为"#!/bin/bash" 

    2、将/bin/sh重新链接到/bin/bash,方法如下:

    方法一:终端执行 sudo dpkg-reconfigure dash,然后选择 no.

    方法二:重新进行软链接,执行以下命令:

    sudo rm /bin/sh
    sudo ln -s /bin/bash /bin/sh

    这样就将/bin/sh链接到了/bin/bash。reboot系统后,命令正常执行

    我使用的是第一个方法连接的,实测可用。

    此时,开机自启后,可以看到相应目录下的test.txt里被写入了指定内容。

    赞同 0 反对 0

    漫漫漫过海湾
  • AI机器人 进阶 2024-10-13 19:11:03

    当在Linux系统的`rc.local`文件中添加的命令不执行,并且`rc-local.service`(在某些系统中可能是`rc-local.service`,而在其他如systemd系统中可能是通过其他方式配置)启动失败时,你可以按照以下步骤进行故障排除:

    ### 1. 确认`rc.local`的权限和内容

    首先,确保`rc.local`文件是可执行的,并且内容格式正确。通常,这个文件位于`/etc/`目录下。

    - 修改权限
    ```bash
    sudo chmod +x /etc/rc.local
    ```

    - 检查内容
    确保文件的第一行是`#!/bin/sh -e`或者类似的shebang行,用于指定解释器。接着是你的命令。

    ```bash
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.

    echo "Hello, world!" > /tmp/rc.local.test
    exit 0
    ```

    ### 2. 检查`rc-local.service`(如果使用systemd)

    如果你的系统使用systemd,可能需要创建一个或修改`/etc/systemd/system/rc-local.service`文件来确保`rc.local`被正确执行。

    - 创建或编辑`rc-local.service`
    ```bash
    sudo nano /etc/systemd/system/rc-local.service
    ```

    内容可能如下:

    ```ini
    [Unit]
    Description=/etc/rc.local Compatibility
    ConditionFileIsExecutable=/etc/rc.local

    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99

    [Install]
    WantedBy=multi-user.target
    ```

    注意:上面的`ExecStart`行中的`/etc/rc.local start`可能不正确,因为`rc.local`不是一个服务,不需要`start`参数。直接运行`/etc/rc.local`即可。

    修改为:

    ```ini
    ExecStart=/etc/rc.local
    ```

    - 重新加载systemd配置并启用服务
    ```bash
    sudo systemctl daemon-reload
    sudo systemctl enable rc-local.service
    sudo systemctl start rc-local.service
    ```

    - 查看服务状态
    ```bash
    sudo systemctl status rc-local.service
    ```

    ### 3. 查看系统日志

    如果服务仍然失败,查看系统日志可能会提供更多线索。

    - 使用journalctl
    ```bash
    sudo journalctl -u rc-local.service
    ```

    - 检查/var/log/syslog(如果系统使用syslog):
    ```bash
    sudo cat /var/log/syslog | grep rc.local
    ```

    ### 4. 确保命令在终端中运行正常

    在`rc.local`中添加的命令应该在终端中直接运行没有问题。如果命令包含环境变量或特定路径,确保这些在启动时是可用的。

    ### 5. 尝试手动运行`rc.local`

    尝试手动运行`/etc/rc.local`来查看是否有错误输出。

    - 手动运行
    ```bash
    sudo /etc/rc.local
    ```

    通过以上步骤,你应该能够诊断并解决`rc.local`文件中的命令不执行以及`rc-local.service`启动失败的问题。

    赞同 0 反对 0

大碗清秀新手
粉丝 0 发表 8 + 关注 私信
上周热门
有没有整合的麒麟各版本镜像资源分享一下  671
统信系统在文件的移动删除复制粘贴都会遇到卡在百分之1的情况,是什么原因呢  652
统信系统可以装这些软件吗?  640
这段话是什么意思,我远程麒麟系统选xvnc以前可以操作,比xorg模式快很多,最近突然提示这个不让远程登录了。  595
您好鸭,想问问麒麟系统怎么进行系统监控,进程的运行时间来优化性能  533
微信打开后白屏显示,无任何消息怎么办  460
磁盘分区显示没有efi分区怎么办  336
求最新的全套化的麒麟系统安装教程  306
统信uos1060无法更换壁纸了怎么办  259
统信双网卡如何设置优先级呢  251
本周热议
麒麟系统登录输入密码后又需要重新输入密码,确定密码正确。如何处理? 12
银河麒麟桌面操作系统V10 SP1安装应用时会反复提示安全授权认证,如何才能取消呢? 10
统信UOS系统下安装HP打印机驱动问题 10
求麒麟系统下的Broadcom 802.11n 无线网卡驱动 10
如何在统信系统使用VFP? 9
银河麒麟系统登录时用户名是中文,如何将输入法切换成中文进行登录? 9
银河麒麟系统安装软件需要密码授权,单用户模式修改密码不行,如何解决 8
使用正版软件承诺书每年一签有相关的政策文件吗? 8
uos浏览器不能访问住建部网站 7
怎么才能用麒麟系统打steam游戏 7

添加我为好友,拉您入交流群!

请使用微信扫一扫!