python - 如何在shell脚本中修改rc.local?

标签 python linux bash shell rc

我想在/etc/rc.d/rc.local中添加一行(例如'*/data/mod/myservice start some_parameter*'。) > shell 脚本中的文件。如果存在以 '*/data/mod/myservice start*' 开头的行,则将其替换为新的一行。

在我的脚本中,它执行下一个 python 方法。

def excuteCmd(cmd):
    import commands
    output = commands.getoutput(cmd)

def setTask(cmd, installFlag):
    print cmd, installFlag
    excuteCmd('cat /etc/rc.d/rc.local >  oldTask')
    input = open('oldTask','r')
    emptyFile = False
    lines = input.readlines()
    input.close()
    taskNum = len(lines)
    output = open('newTask', 'w')
    if (taskNum  == 0):
            if (installFlag):
                    output.write(cmd + '\n')
    else:
            for i in range(taskNum):
                    if (lines[i].find(cmd) == -1):
                            output.write(lines[i])
            if (installFlag):
                    output.write(cmd + '\n')
    output.close()
    excuteCmd('sudo cat newTask > /etc/rc.d/rc.local')
    excuteCmd('rm -f oldTask')
    excuteCmd('rm -f newTask')

但是当我执行 sudo cat newTask >/etc/rc.d/rc.local 时,它会引发以下错误。

-bash:/etc/rc.d/rc.local:权限被拒绝

最佳答案

这意味着您无权写入或删除该文件。此外,您将无法运行 sudo像这样的命令无需输入密码,因此理想情况下脚本本身将使用 sudo python scriptname 运行.

关于python - 如何在shell脚本中修改rc.local?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8656881/

相关文章:

python - Mininet API 中两个节点之间是否存在链接

python - 在 Pandas 中按不规则组分割数据框

phpmyadmin 拒绝所有权限(Arch Linux 设置)

支持FTPS(FTP-SSL/TLS)的Linux FTP代理产品

python - 优化 shell 脚本 (bash) 以提高性能

Python:将字符串拆分为单词,保存分隔符

python - Scikit-image:如何忽略/屏蔽来自 ndarray 的零值以便之后进行插值?

linux - Bash 脚本 - 如何检查软件包是否已安装并根据终端结果执行操作

linux - 为什么 "A=3; A=4 echo $A"在 Bash 中产生 3(而不是 4)?

bash - unzip 命令中的 Shell 脚本语言帮助