[玩转MAC] 让Mac OS X系统启动时执行脚本的方法
作者:CC下载站 日期:2022-09-15 06:05:29 浏览:143 分类:玩电脑
我们可以利用Mac OS X内置的一种称为Launch Daemon / Agent的机制来实现系统启动时自动执行脚本程序。Mac OS X从10.4 开始,采用 launchd进程来管理整个操作系统的服务及进程。传统的UNIX 会使用 /etc/rc.* 或其他的机制来管理开机时要启动的启动服务,而现在的Mac OS X则使用launchd来管理,它的启动服务称为Launch Daemon / Agents。利用Launch Daemon / Agent,我们就可以令脚本程序在系统启动的时候在后台运行了。
•Launch Daemon和Launch Agent的区别
Launch Daemon和Launch Agent 是同一种东西在不同应用范围的名称。Launch Daemon是系统级别的服务,称为daemon,Launch Agent是用户级别的服务,称为agent,前者在开机时会加载,后者在用户登录后才会加载。所以我们采用Launch Daemon的方式运行脚本。
•从AssetExolorer导出脚本文件
选择扫描→孤立工作站审计→通过脚本扫描工作站→Mac导出脚本文件ae_scan_mac.sh,并修改脚本文件中的hostName="服务器IP地址或域名地址",并检查portNo一项是否正确。
•创建plist配置文件
Launchd进程需要读取一个xml格式的plist配置文件,创建该文件并将其放置在/System/Library/LaunchDaemons/ 或者/Library/LaunchDaemons/目录下。可在Windows下预先创建该文件,需要使用支持Unix格式的文本编辑器(比如UltraEdit)创建该文件。
其中plist文件格式及每个字段的含义:
ae_scan_mac.plist文件范例:
XML/HTML Code复制内容到剪贴板
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEplistPUBLIC"-//AppleComputer//DTDPLIST1.0//EN"
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plistversion="1.0">
- <dict>
- <key>Label</key>
- <string>com.manageengine.ae_scan_mac</string>
- <key>Program</key>
- <string>ae_scan_mac.sh</string>
- <key>RunAtLoad</key>
- <true/>
- <key>WorkingDirectory</key>
- <string>/Library/LaunchDaemons/</string>
- <key>KeepAlive</key>
- <false/>
- <key>StartCalendarInterval</key>
- <dict>
- <key>Hour</key>
- <integer>11</integer>
- <key>Minute</key>
- <integer>0</integer>
- </dict>
- </dict>
- </plist>
其中的关键字解释:
1)Label(必选)
该项服务的名称。
2)Program(ProgramArgument是必选的,在没有ProgramArgument的情况下,必须要包含Program关键字)
指定可执行文件的路径和名称。
3)RunAtLoad(可选)
标识launchd在加载完该项服务之后立即启动路径指定的可执行文件。默认值为false。设置为true即可实现开机运行脚本文件。
4)WorkingDirectory(可选)
运行可执行文件之前,指定当前工作目录的路径。
5)KeepAlive(可选)
这个关键字可以用来控制是否让可执行文件持续运行,默认值为false,也就是说满足具体条件之后才启动。当设置值为ture时,表明无条件的开启可执行文件,并使之保持在整个系统运行周期内。
6)StartCalendarInterval(可选)
该关键字可以用来设置定时执行可执行程序,可使用Month、Day、Hour、Minute等子关键字,它可以指定脚本在多少月、天、小时、分钟、星期几等时间上执行,若缺少某个关键字则表示任意该时间点,类似于Unix的Crontab计划任务的设置方式,比如在该例子中设置为每天11点钟执行脚本文件。
所有key关键字详细使用说明可以在Mac OS X终端下使用命令man launchd.plist查询。
•在客户机部署配置文件和脚本文件
1) 首先为Mac OS X系统的当前的用户设置一个密码,在系统偏好设置→账户中设置。
然后,可通过共享等方式将脚本文件ae_scan_mac.sh和plist文件ae_scan_mac.plist拷贝到本地硬盘的一个临时目录中,然后打开实用工具→终端,使用以下命令:
sudo mv ae_scan_mac.* /Library/LaunchDaemons
将这两个文件移动到/Library/LaunchDaemons/目录下。
2) 修改文件权限:
sudo chown root:wheel /Library/LaunchDaemons/ae_scan_mac.*
sudo chmod a+x /Library/LaunchDaemons/ae_scan_mac.sh
sudo chmod 644 /Library/LaunchDaemons/ae_scan_mac.plist
3) plist文件的编辑和检查
可使用命令sudo vim ae_scan_mac.plist对文件进行修改。
检查plist文件的语法:
plutil ae_scan_mac.plist
若返回OK则表示文件语法正确。
4) 启动服务并载入plsit文件:
sudo launchctl load /Library/LaunchDaemons/ae_scan_mac.plist
或者重启Mac电脑也可以。
要留意的是,每次修改完plist文件后必须使用以下命令重新载入plist文件又或者重启电脑,plist的配置才会生效。
sudo launchctl unload /Library/LaunchDaemons/ae_scan_mac.plist
sudo launchctl load /Library/LaunchDaemons/ae_scan_mac.plist
接着,检查服务的运行状态:
sudo launchctl list
5) 最后待脚本运行后,就能在AssetExplorer服务器上看到这台客户机的信息了,之后客户机就会自动按照plist文件设置的时间或者重启机器后将机器信息上传到服务器。
两个文件的部署有几个地方需要注意的:
1)文件的权限必须正确,两个文件所有者必须为root,脚本文件必须有执行权限。
2)plist文件的语法必须正确,要留意配置中的程序工作目录和运行参数不要错。可执行:sudo launchctl start /Library/LaunchDaemons/ae_scan_mac.plist
强制运行服务,或者直接运行一下脚本程序,测试一下脚本文件的运行是否正常。
3)每次plist文件修改后必须执行launchctl unload/load卸载并重新载入plist文件,才能使新的配置文件马上生效。
脚本程序和配置文件分别在多台客户机一次性部署后,AssetExplorer就可以自动收集到所有Mac电脑的硬件和软件信息,即使机器配置更改了也无需手动添加,方便了公司的资产管理。Launchd进程的功能比较强大,Apple推荐并已使用该进程替代传统的cron了,大家有兴趣可以再研究一下。
原文为博主所著,并刊登于《网络运维与管理》杂志2014.02.3.4期。
猜你还喜欢
- 09-06 [系统技巧] windows中,端口查看 关闭进程及Kill使用
- 09-06 [系统教程] Windows系统Git安装教程(详解Git安装过程)
- 06-26 [系统技巧] 远程桌面连接(mstsc)全攻略
- 03-29 [玩系统] Windows下强大的命令终端-Cmder
- 03-29 [系统技巧] Win10右键菜单添加“获取文件管理员权限”选项
- 03-29 [系统技巧] win10删除文件夹需要Administrator权限
- 03-09 [网络技巧] 如何使用IPv6地址直接访问http,https服务及Windows共享文件夹[UNC路径]
- 11-05 [系统技巧] 真的有后悔药!Win10超给力的备份功能你用过吗
- 11-05 [系统技巧] 发现Win11、Win10备份已禁用?帮你快速解决!
- 11-05 [电脑技巧] 科普|F1-F12快捷键有什么用?
- 11-05 [系统技巧] 永劫无间游戏卡顿、闪退 只需检查电脑这个设置
- 11-05 [系统技巧] Win10出现Runtime Error如何修复
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[美剧] 《女巫阿加莎》2024 [1080P BD][英语 中英双语字幕][1-9集全]
[美剧] 企鹅人 The Penguin (2024) 1080P 全8集完结
[电视剧] 我们在黑夜中相拥 (2024) 1080 横屏短剧 更24完结
[书籍] 经典科普书籍合集30套近300部·完美精校全插图收藏版
[电影] 狄仁杰之夺命妖僧(2024)【4K / HQ / 60帧 / 超高码率】【杜比5.1音效】【15.5G】
[电视剧] 春花 焰(2024)【完结】【4K / HQ / 60帧 / 超高码率】【杜比5.1音效】【刘学义/吴谨言】【256.4G】
[有声小说] 《才气横空》 主播:八零居士 505集完结【MP3】
[电影] 【珍藏版】20世纪电影合集从1922年到1990年代,看看爷爷辈的电影是什么样合集约212G
[资料] 【2024年军队文职公共科目/专业课/真题及押题卷】
[少儿教育] 唐诗三百首微电影(全314集)·少儿学唐诗
[书籍] 彭子益医书合集 [PDF/DOC]
[游戏] 《黑神话悟空》免安装学习版【全dlc整合完整版】+Steam游戏解锁+游戏修改工具!
[动画] 《名侦探柯南》名侦探柯南百万美元的五菱星 [TC] [MP4]
[动画] 2002《火影忍者》720集全【4K典藏版】+11部剧场版+OVA+漫画 内嵌简日字幕
[剧集] 《斯巴达克斯》1-4季合集 无删减版 1080P 内嵌简英特效字幕
[CG剧情] 《黑神话:悟空》158分钟CG完整剧情合集 4K120帧最高画质
[电影] 《变形金刚系列》七部合集 [4K HDR 蓝光] 国英双语音轨 [内封精品特效字幕]【典藏版】235G
[游戏] 黑神话悟空离线完整版+修改器
[动画] 西游记 (1999) 动画版 4K 全52集 高清修复版 童年回忆
[演唱会] 2024刀郎知交线上演唱会 2K [MP4]
[影视] 美国内战 4K蓝光原盘下载+高清MKV版/内战/帝国浩劫:美国内战(台)/美帝崩裂(港) 2024 Civil War 63.86G
[影视] 一命 3D 蓝光高清MKV版/切腹 / 切腹:武士之死 / Hara-Kiri: Death of a Samurai / Ichimei 2011 一命 13.6G
[影视] 爱情我你他 蓝光原盘下载+高清MKV版/你、我、他她他 2005 Me and You and Everyone We Know 23.2G
[影视] 穿越美国 蓝光原盘下载+高清MKV版/窈窕老爸 / 寻找他妈…的故事 2005 Transamerica 20.8G
[电影] 《黄飞鸿》全系列合集
[Android] 开罗游戏 ▎像素风格的模拟经营的游戏厂商安卓游戏大合集
[游戏合集] 要战便战 v0.9.107 免安装绿色中文版
[电影] 【珍藏版】20世纪电影合集从1922年到1990年代,看看爷爷辈的电影是什么样合集约212G
[书籍] 彭子益医书合集 [PDF/DOC]
[系统]【黑果小兵】macOS Big Sur 11.0.1 20B50 正式版 with Clover 5126 黑苹果系统镜像下载
- 最新评论
-
找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢285552528 评论于:11-09 找了好久的资源bjzchzch12 评论于:11-07 谢谢分享感谢ppy2016 评论于:11-05 谢谢分享感谢ppy2016 评论于:11-05 有靳东!嘻嘻奥古斯都.凯撒 评论于:10-28 流星花园是F4处女作也是4人集体搭配的唯一一部!奥古斯都.凯撒 评论于:10-28 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢AAAAA 评论于:10-26 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢password63 评论于:10-26 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21
- 热门tag