从macOS catalina开始,
iNodeMon会遇到服务启动失败的问题😫,而且在macbook💻休眠或者断开电源时,AuthenMngService进程可能会出现cpu占用过高的问题🥵。
-
✅扫除系统日志
system.log中每 10 秒报一次的 iNodeMon 重启信息; -
✅每分钟检测
AuthenMngService进程状态,并执行以下操作:-
服务退出自动重新启动;
-
如果cpu占用超过
80%,则重新启动;
-
-
切换至超级用户,并根据提示输入 当前用户 的密码;
sudo -s
-
停掉当前的inode相关服务;
/Applications/iNodeClient/StopService.sh
-
备份原始的
/Applications/iNodeClient/iNodeMon文件;mv /Applications/iNodeClient/iNodeMon /Applications/iNodeClient/iNodeMon~origin
-
使用下载的可执行文件
iNodeMon放回指定的位置/Applications/iNodeClient/;mv /path/to/downloaded/iNodeMon/ /Applications/iNodeClient/
-
对新的
iNodeMon赋予可执行权限;chmod a+x /Applications/iNodeClient/iNodeMon
-
重新启动inode相关服务;
/Library/StartupItems/iNodeAuthService/iNodeAuthService start
-
使用
exit或者CTRL+D退出超级用户;
-
由于iNode本身的启动脚本观察进程状态使用的
ps命令是不支持查看脚本运行状态的的,所以需要将bash脚本转换为可执行程序; -
如果不想使用附件里面的
inodeMon可以自行安装shc,可以使用brew install shc来进行,brew的使用可以前往官网自行了解。 -
脚本进行编译并生成可执行需要在超级用户下进行,参考 部署方法 中切换超级用户的方法
cd /Applications/iNodeClient/shc -r -f iNodeMon.sh -o iNodeMon
- 日志位置在
/Library/Logs/iNode/每天转存.log为.old
安装了inodeClient之后,在macOS系统启动时inode服务也会自动启动。
如果不希望它自动启动,并在需要时手动启动,可以卸载自启动的配置,并使用
inode.sh;
-
首先执行以下命令,来取消inode相关服务在macOS启动是自动启动
sudo launchctl unload /Library/LaunchDaemons/com.apple.iNodeClient.plist
sudo rm -f /Library/LaunchDaemons/com.apple.iNodeClient.plist
-
将
inode.sh放在${PATH}能找到的位置,例如/usr/local/bin/下;mv /path/to/downloaded/inode.sh /usr/local/bin/
-
赋予
inode.sh可执行权限;chmod a+x /usr/local/bin/inode.sh
-
执行
inode.sh start|stop|restart来启动启动|停止|重启inode服务;inode.sh start