• MAC的开机启动


    之前了解到MAC下的开机启动和定时自动运行不再沿用cron,而是有自己的launchctl:把启动文件放在/Library/LaunchDaemon/xxx.plist,里面可以记录运行的时间间隔、工作目录之类的。

    我在公司的笔记本使用无线网,每次重启后IP可能会变,变了以后我在家里就找不到它了,为了解决这个问题,我让机器每隔一段时间执行ifconfig命令,并把结果输出到云同步盘上去。只要查一下同步盘上的记录,就知道ip了。我的com.binglen.ipmonitor.plist文件是这么写的:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.binglen.ipmonitor.plist</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/palance/百度云同步盘/workdir/MsRemoteDesktop/ipmonitor.sh</string>
        </array>
        <key>KeepAlive</key>
        <false/>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <integer>60</integer>
        <key>WorkingDirectory</key>
        <string>/Users/palance/百度云同步盘/workdir/MsRemoteDesktop/</string>
    </dict>
    </plist>

    然后执行launchctl load /Library/LaunchDaemon/com.binglen.ipmonitor.plist,成功!

    虽然脚本每分钟会执行,可是每次重启机器后发现不能自动起来。最后发现原来是权限的问题,在执行load之前需要执行如下命令:

    sudo chown root com.binglen.ipmonitor.plist       # 将plist文件权限修改为root
    sudo luanchctl load com.binglen.ipmonitor.plist   # 以管理员权限运行

    再次重启后,运行如下命令即可查看到正在运行的脚本:

    $ sudo launchctl list|grep binglen
    
    -    0    com.binglen.ipmonitor.plist

    不过我还是有一个遗留问题:当前非管理员也运行着若干launchctl脚本,前面的查看命令不敲sudo就可以看到这个list,他们也是开机启动的,怎么做到的呢?

  • 相关阅读:
    手误【删库】 == 跑路,不存在的 Linux回收站
    大规模集群全网数据备份解决方案
    宝塔Nginx配置防盗链
    Markdown语法
    QFtp编程模型(二)
    Ubuntu驱动程序开发6-Linux内核启动与程序烧写
    Ubuntu下TFTP、NFS和SSH服务搭建
    ubuntu环境变量的三种设置方式
    QByteArray详解
    mysql的索引下推理解和实践
  • 原文地址:https://www.cnblogs.com/palance/p/5101340.html
Copyright © 2020-2023  润新知