使用终端在启动时运行shell脚本? (Mac OS X)

时间:2016-12-04 23:01:49

标签: macos terminal startup

我知道您可以使用Automator从脚本中创建一个应用程序,您可以从首选项应用于登录文件...但是真的很想知道是否可以使用终端在启动时运行shell脚本设置这个?无需移动鼠标。顺便说一句。该脚本将启动我用于Web开发的不同服务: - )

谢谢!

1 个答案:

答案 0 :(得分:3)

要运行脚本/命令,您可以使用launchd

您需要专门拥有2个文件。

1)你的shell脚本。

2)plist文件。

以下为示例plist:将其另存为com.example.exampld.plist。标签和plist名称最好由apple给出。

<?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>com.example.exampled</string>
    <key>LaunchOnlyOnce</key>
        <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>absolute_path_to_script</string>

    </array>
</dict>
</plist>

根据您的需要放置它。

以下是文件夹:

|------------------|-----------------------------------|---------------------------------------------------|
| User Agents      | ~/Library/LaunchAgents            | Currently logged in user
|------------------|-----------------------------------|---------------------------------------------------|
| Global Agents    | /Library/LaunchAgents             | Currently logged in user
|------------------|-----------------------------------|---------------------------------------------------|
| Global Daemons   | /Library/LaunchDaemons            | root or the user specified with the key UserName
|------------------|-----------------------------------|---------------------------------------------------|
| System Agents    | /System/Library/LaunchAgents      | Currently logged in user
|------------------|-----------------------------------|---------------------------------------------------|
| System Daemons   | /System/Library/LaunchDaemons     | root or the user specified with the key UserName
|------------------|-----------------------------------|---------------------------------------------------|

根据您的需要,将其放在上面列表中的第一个或第二个文件夹中。

要运行脚本,请使用launchctl加载脚本或重新启动mac。

加载和卸载脚本:

sudo launchctl load /Library/LaunchAgents/com.example.exampld.plist    // for loading
sudo launchctl unload /Library/LaunchAgents/com.example.exampld.plist  // for unloading

查看apple website可以在plist中使用的键。

我希望它有所帮助。