Mac下用Launchd实现使用rc.local执行开机启动命令
2017-11-11 21:22
435 查看
其实原理很简单,使用Launchd创建一个开机启动的服务,然后这个服务关联/etc/rc.local文件,那么接下来操作rc.local就和Linux下一样的了。
当然,这种思路还可以直接使用在~/.bashrc文件上,但是这种方式有个弊端,就是权限不是root,所以适用范围小很多。而通过这个服务创建的文件,在里面执行脚本的用户是root,权限是最高的。
说明:关于launchd的用户直接上苹果开发者网站查询,线索可以是这个launchctl
实现步骤:
进入
创建一个plist文件
复制以下内容到文件保存。(按【Esc】,然后输入【:wq!】,回车)
使用launchctl添加为服务
最后创建rc.local文件,
在里面写好需要开机执行的命令。记得赋予
参考:
http://blog.csdn.net/maxsky/article/details/55061453(以上内容部分转自此篇文章,删减了对话)
http://blog.csdn.net/abby_sheen/article/details/7817198
当然,这种思路还可以直接使用在~/.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
相关文章推荐
- Mac OS X 使用 rc.local 开机执行命令设置方法
- Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法
- Linux开机启动/etc/rc.d/rc.local 中部分命令执行失败
- 开机启动程序、脚本(开机执行命令,永久修改MAC)【仅供参考】
- 开机启动程序、脚本(开机执行命令,永久修改MAC)【仅供参考】
- ubuntu 修改ssh远程主机名称,mac开机运行命令,静默方式启动virtual box虚拟机,静默执行run脚本
- rc.local 不执行解决方法 开机启动
- 解决Linux开机启动文件rc.local不能自动执行
- Linux开机启动rc.local不执行分析
- 把指定用户的命令写在/home/etc/rc.local中,系统开机时就会自动执行指定用户的命令。
- Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启动程序/服务)
- centos7 开机/etc/rc.local不执行命令的问题
- Ubuntu 16.04设置rc.local开机启动命令/脚本的方法
- Linux开机启动文件rc.local无法执行,开机后手动可以启动文件
- CentOS 6下rc.local中的命令在启动后不能自动执行问题的排查方法
- centos7 开机/etc/rc.local 不执行的问题及部分命令执行不成功
- shell脚本实现每秒执行一次任务 rsync命令使用
- Update-rc.d && rc.local管理Ubuntu的开机启动
- 使用BroadcastReceiver实现开机启动Service或Activity