zoukankan      html  css  js  c++  java
  • 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,他们也是开机启动的,怎么做到的呢?

  • 相关阅读:
    硅谷独角兽公司的监控系统长啥样?
    通过jQuery设置全局Ajax加载时呈现Loading
    Jquery遮罩插件,想罩哪就罩哪!
    jquery 读取textarea内容
    easy ui layout 高度 宽度自适应浏览器
    css调节样式
    ORACLE数据库的连接
    spring cloud API网关
    嵌套查询与连接查询的性能
    对于where 1=1 这种条件传入需要'%s'
  • 原文地址:https://www.cnblogs.com/palance/p/5101340.html
Copyright © 2011-2022 走看看