欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Mac登录开机自动运行shell (sh)脚本 有大用 有大大用 有大大大用 有大大大大用

Mac开机自动运行shell脚本

 1、首先写一个sh脚本,比如: 

1 cd ~/Documents
2 mkdir haha

代码很简单,进入Documents文件夹,建立haha目录,保存为run.sh

 

2、修改run.sh权限

sudo chmod 777 run.sh

 

3、右键点击run.sh->显示简介,主要将打开方式修改为终端,共享和权限将所有权限打开。

 

 

 

 

 

4、进入系统偏好设置->用户与群组->登陆项,将haha.sh添加到登陆项,并勾选前面的隐藏选项卡,重新启动即可。

  

 

5.验证:

现在 Documents目录下不存在文件夹 

 

 重启电脑后,再看一下这个文录,已经有haha文件夹了,说明run.sh脚本开机已经自启动了 

 

 

来自   https://www.cnblogs.com/kaerxifa/p/11378558.html



Mac上如何开机与关机时自动运行Shell脚本

 收录于 折腾   约 762 字   预计阅读 2 分钟   次阅读 目录


网上讲如何开机运行脚本的很多,但我有关机时关闭远程服务的需求。于是上外网查了一下如何在关机时执行一段脚本。

新建一个shell文件

这个shell中包含了你需要开机关机时运行的脚本。



以上文件我取名为launchdeamon,赋予了当前用户的执行权限。

1
chmod 755 launchdaemon

新建plist文件

为了让launchdeamon能在开机时自动运行,需要编写一个相应plist文件,使用launctl做到开机启动。关于launchctl和plist的作用,请先查看这篇文章:Mac执行定时任务之launchctl

plist文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>boot-shutdown</string>

<key>ProgramArguments</key>
<array>
  <string>$SCRIPT_PATH/launchdaemon</string>
</array>

<key>RunAtLoad</key>
<true/>

<key>StandardOutPath</key>
<string>$LOG_PATH/boot-shutdown.log</string>

<key>StandardErrorPath</key>
<string>$PLOG_PATH/boot-shutdown.err</string>

</dict>
</plist>



plist文件以键值对的形式存储信息。以上文件的字段解释:

  • Label:标签,也就是运行该plist显示的名字。这里为boot-shutdown

  • ProgramArgumentsarray里可以存放多个需要运行程序。这里的$SCRIPT_PATH请自己修改。

  • RunAtLoad:开机自启,为true

  • StandardOutPath:打印标准输出到某个文件,方便查看程序后台运行的结果,$LOG_PATH自行修改。

  • StandardErrorPath:打印标准错误到某个文件,同上。

以上文件我取名为 boot-shutdown-script.plist 。

由于shell脚本的执行权限是当前用户,以上文件需要放入当前用户的开机启动文件夹,即为 ~/Library/LaunchAgents 。

然后将plist文件加入开启启动:

1
launchctl load ~/Library/LaunchAgents/boot-shutdown-script.plist

此时重启后,可以使用以下命令查看脚本运行状态

1
launchctl list | grep boot

输出为

1
438 0 boot-shutdown

第一个是pid。第二个为状态码,为0说明正常运行中。


参考:


来自 https://namiling.github.io/2020-11-24-mac%E4%B8%8A%E5%A6%82%E4%BD%95%E5%BC%80%E6%9C%BA%E4%B8%8E%E5%85%B3%E6%9C%BA%E6%97%B6%E8%87%AA%E5%8A%A8%E8%BF%90%E8%A1%8Cshell%E8%84%9A%E6%9C%AC/



普通分类: