系统偏好设置-&gt,所以就想把redis设置为开机启

2020-04-18 03:22 来源:未知

概述

Mac下的启航服务首要有八个地点可铺排:
1,系统偏心设置->帐户->登入项
2,/System/Library/StartupItems 和 /Library/StartupItems/
3,launchd 系统早先化进度配置。

前三种优化比较简单,本文主要介绍的是第两种越发复杂的launchd配置优化。
launchd是Mac OS下,用于开端化系统情形的重要进度。近似Linux下的init, rc。

大家先来看一下Mac OS X的起步原理:
1,mac固件激活,初叶化硬件,加载BootX指导器。
2,BootX加载内核与幼功扩充(kext卡塔尔国。
3,内核运行launchd进度。
4,launchd根据 ?/System/Library/LaunchAgents ,?/System/Library/LaunchDaemons , ?/Library/LaunchDaemons,?Library/LaunchAgents , ~/Library/LaunchAgents?里的plist配置,运转服务守护进程。

看完了Mac OS X的开发银行原理,大家简单察觉?/System/Library/LaunchAgents ,?/System/Library/LaunchDaemons , ?/Library/LaunchDaemons,?Library/LaunchAgents?四个目录下的plist属性文件是优化系统的首要。

下边再来领会多少个功底概念:
/System/Library和/Library和~/Library目录的差异?
/System/Library目录是存放Apple自个儿费用的软件。
/Library目录是系统管理员贮存的第三方软件。
~/Library/是顾客自身寄存的第三方软件。

LaunchDaemons和LaunchAgents的区别?
LaunchDaemons是客户未登录前就开行的服务(守护进度)。
LaunchAgents是顾客登入后运转的劳务(守护进度)。

地点提到的八个目录下的plist文件格式及各类字段的意义:

Key Description Required
Label The name of the job yes
ProgramArguments Strings to pass to the program when it is executed yes
UserName The job will be run as the given user, who may not necessarily be the one who submitted it to launchd. no
inetdCompatibility Indicates that the daemon expects to be run as if it were launched by?inetd no
Program The path to your executable. This key can save the ProgramArguments key for flags and arguments. no
onDemand A?boolean?flag that defines if a job runs continuously or not no
RootDirectory The job will be?chrooted?into another directory no
ServiceIPC Whether the daemon can speak IPC to launchd no
WatchPaths Allows launchd to start a job based on modifications at a file-system path no
QueueDirectories Similar to WatchPath, a queue will only watch an empty directory for new files no
StartInterval Used to schedule a job that runs on a repeating schedule. Specified as the number of seconds to wait between runs. no
StartCalendarInterval Job scheduling. The?syntax?is similar to?cron. no
HardResourceLimits Controls restriction of the resources consumed by any job no
LowPriorityIO Tells the kernel that this task is of a low priority when doing file system I/O no
Sockets An array can be used to specify what socket the daemon will listen on for launch on demand no

看不懂上边地plist配置吗?不妨,大家的优化战略是全然卸载服务,所以大家毫不关怀plist里的安顿含义。

装了redis有一段时间了,每回运营的时候都供给手动在命令行里运营redis,并且窗口无法关闭,认为很劳顿,所以就想把redis设置为开机运维。由于google打不开(伟大的GFW啊卡塔尔(قطر‎,所以百度了几篇小说,照着教程一步一步做还是尚未得逞,怪自身太笨了。

早先优化

剥夺服务,大家必要接收Mac OS提供的三个工具指令-launchctl
launchctl 指令会针对服务设置一个剥夺标记,launchd运维时会先检查那个服务是还是不是被禁止使用,进而明确是或不是要求启用这一个服务。

剥夺服务的法子1
先找到禁止使用标记文件 /var/db/launchd.db/com.apple.launchd/overrides.plist,查看你要禁止使用的服务是不是已被剥夺了。
微微服务已被禁止使用,但未列在overrides.plist里。那个时候,你还须求检讨那么些服务的plist文件Label字段是不是早就标志为 Disable。

确认那些服务未禁止使用后,大家就足以由此调用如下命令,来剥夺服务:
sudo launchctl unload plist文件路线
sudo launchctl unload -w?plist文件路线
比如,作者想禁止使用spotlight,则输入
sudo launchctl unload?/System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w?/System/Library/LaunchAgents/com.apple.Spotlight.plist

www.129028.com,禁止使用完服务之后,重启Mac OS就可以以预知效。

剥夺服务的方法2,一种更实用且暴力的措施(推荐)
先卸载服务
sudo launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
下一场将plist文件mv到别的目录备份。重启。化解。是否很简短!

本身个人相比合意这种禁止使用服务的章程,所以推举一下。

若是开采服务禁止使用后,系统或软件现身至极,可以由此如下命令,还原服务:
方法1:
sudo launchctl load -wF?plist文件路径
方法2:
将备份的plist文件mv回原本的文书夹。
sudo launchctl load plist文件路线

瞩目:系统级服务的剥夺要相当小心,请在禁止使用前google,确认保证您熟练这几个服务的功效。不然只怕导致系统不可能起动。
最安全的做法正是不要去禁止使用它了。

理之当然,顾客服务大家仍旧得以放心禁止使用的,有标题最多再启用呗。

上面是本身禁止使用的劳动列表:
/System/Library/LaunchDaemons/com.apple.metadata.mds.plist (禁用spotlight的前提)
/System/Library/LaunchAgents/com.apple.Spotlight.plist (Spotlight)
/Library/LaunchDaemons/com.google.keystone.daemon.plist ?(Google Software Update)
/Library/LaunchAgents/com.google.keystone.root.agent ?(Google Software Update)
~/Library/LaunchAgents/com.google.keystone.agent.plist?(谷歌(GoogleState of Qatar Software Update,客户下的长河无需加 sudo卡塔尔国
~/Library/LaunchAgents/com.apple.CSConfigDotMacCert-ken.wug@me.com-SharedServices.Agent.plist (me.com的分享服务,笔者并非卡塔尔
/System/Library/LaunchDaemons/org.cups.cupsd.plist (打印机)
/System/Library/LaunchDaemons/org.cups.cups-lpd.plist (打印机)
/System/Library/LaunchDaemons/com.apple.blued.plist (蓝牙)
/System/Library/LaunchAgents/com.apple.AirPortBaseStationAgent.plist (apple有线基站,小编平素不这些设备)

清楚守护进度(服务)名,如何找到呼应的plist文件?
将进程(服务)名拷贝,然后到 /System/Library/LaunchAgents ,?/System/Library/LaunchDaemons , ?/Library/LaunchDaemons,?Library/LaunchAgents , ~/Library/LaunchAgents 八个目录里,通过以下命令查找:

ll|grep 进程(服务)名
比如
ll|grep blued
在 ?/System/Library/LaunchDaemons 中找到了它。接下来,请按上面指点的步调,禁止使用该服务。

 

这二日本人搭建了三个VPN,又能用google了,所以把这几个标题一蹴而就了下,现在redis终于能开机运营了,High一下。

要安装redis开机运转,这里小编使用的是mac的launchd系统,将redis作为客商守护(User DaemonState of Qatar进度运转在后台。简单的讲,客商守护进度是当做系统的一片段运转在后台的非图形化程序。顾客守护进度是不和客户账户涉嫌的。借使单单想对有个别特定的客商安装redis开机运行,那就须求动用顾客代理(User Agent卡塔尔国了(这一个笔者也不会,我们自身研究吧,届期候别忘了告诉笔者下卡塔尔国。

具体步骤

创立一个plist文件

第一大家必要在/Library/LaunchDaemons目录下创办八个plist文件,使用如下命令:复制代码 代码如下:sudo vim /Library/LaunchDaemons/io.redis.redis-server.plist将下边包车型大巴情节粘贴到上一条命令成立的文书里复制代码 代码如下:xml version="1.0" encoding="UTF-8"!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ""plist version="1.0"dict keyLabel/key stringio.redis.redis-server/string keyProgramArguments/key array string/usr/local/bin/redis-server/string string/usr/local/etc/redis.conf/string /array keyRunAtLoad/key true//dict/plist粘贴完以往,大家须求对下边包车型地铁内容做两处退换:三个是“redis-server”的路线,这里须要改为你和谐的安装路线(可以选择”which redis-server”命令来查阅具体的门道卡塔尔(قطر‎。还恐怕有四个就是redis配置文件的路径,这些是可选的,若无动用布署文件那么就把第2个删除,假若应用了配置文件,应当要改为准确的路线。

将plist文件载入到launchd

TAG标签:
版权声明:本文由www.129028.com-澳门金沙唯一官网www129028com发布于编程新闻,转载请注明出处:系统偏好设置-&gt,所以就想把redis设置为开机启