Mac下用Launchd實現使用rc.local執行開機啟動命令


其實原理很簡單,使用Launchd創建一個開機啟動的服務,然后這個服務關聯/etc/rc.local文件,那么接下來操作rc.local就和Linux下一樣的了。

當然,這種思路還可以直接使用在~/.bashrc文件上,但是這種方式有個弊端,就是權限不是root,所以適用范圍小很多。而通過這個服務創建的文件,在里面執行腳本的用戶是root,權限是最高的。

說明:關於launchd的用戶直接上蘋果開發者網站查詢,線索可以是這個launchctl

實現步驟:

進入/Library/LaunchDaemons目錄

cd /Library/LaunchDaemons

創建一個plist文件

sudo vim local.localhost.startup.plist

復制以下內容到文件保存。(按【Esc】,然后輸入【:wq!】,回車)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>local.localhost.startup</string>
        <key>Disabled</key>
        <false/>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <false/>
        <key>LaunchOnlyOnce</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
            <string>/etc/rc.local</string>
        </array>
    </dict>
</plist>

使用launchctl添加為服務

sudo launchctl load -w ./local.localhost.startup.plist

最后創建rc.local文件,

sudo vim /etc/rc.local

在里面寫好需要開機執行的命令。記得賦予rc.local文件x權限(可執行)

sudo chmod +x /etc/rc.local

 

參考:

http://blog.csdn.net/maxsky/article/details/55061453(以上內容部分轉自此篇文章,刪減了對話)

http://blog.csdn.net/abby_sheen/article/details/7817198


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM