`
song020cn
  • 浏览: 63356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OSX用户登陆后自动运行相应shell脚本

阅读更多

原标题:

Launch shell script silently at login

 

In OSX I needed a shell script to execute at login. There are a few different ways to perform this so I thought it might be helpfulto document what your options are. I've switched over to Emacs which typically has a longer startup time than editors such as Vim. This is the shell script we will execute:

#!/bin/zshemacs --daemon

 Oftentimes Emacs will stay open during an entire user session of the OS, so the sooner I can launch it the better. OSX offers a few different startup options for us. First, we have Login Items available within Account Settings of the System Preference pane. We need to rename the shell script above to end in a .command file extension to allow the Login Items to execute it. This will run at login, however we will be left with a Terminal prompt visible when the script has completed. Preferably we would execute this in the background at user login. OSX manages system and user daemons via a tool called launchd. The interface to launchd is a tool called launchctl which allows for loading and unloading daemons into launchd. XML formatted plist files are used to describe operations loaded into launchctl.

<plist version="1.0">
 <dict>
   <key>Label</key>
   <string>emacs-daemon</string>
   <key>RunAtLoad</key>
   <true />
   <key>Program</key>
   <string>/Users/nickp/bin/scripts/launch-emacs-daemon.sh</string>    </dict>
</plist>

 The above file, emacs-daemon.plist needs to be saved in the ~/Library/LaunchAgents directory. As you can see the xml dictates that the launch-emacs-daemon.sh file should be executed at load, note we no longer need a .command file extension. We will now use launchctl to load our plist file.

launchctl load ~/Library/LaunchAgents/emacs-daemon.plist

 To verify that your script executed correctly lets ask launchctl to show us what is running.

launchctl list | grep emacs

 You will likely see two entries, each with three columns. Mine looks like this:

148-0x100100e80.anonymous.emacs-0emacs-daemon

 The first column is the process id, the first row shows the PID of the emacs daemon our shell script spawned. The second line is the emacs-daemon.plist job entry that executed, returning a status code of zero in the second column - success! With this setup, I can launch the emacsclient process which will attach to the daemon server and launch instantly.

分享到:
评论

相关推荐

    mac 下 apk自动签名 shell脚本

    mac 下 apk自动签名 shell脚本

    Shell脚本专家指南

    Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...

    harmonyos2-osx:用于自动化OSX开发设置的Shell脚本

    shell 脚本。 特征 配置默认的 OSX 设置。 使用以下公式安装: 下载和安装软件包一般不在: 下载并安装软件扩展: 要求 (并且接受许可协议) 设置 打开终端窗口并根据您的版本首选项执行以下设置序列之一: 当前...

    常用的 shell 脚本,包括 centos, Ubuntu, Mac osx, 以及 Docker, Python 等常用软件

    包含常用软件的shell 安装脚本,以及依赖配置.(包括 Centos, Ubuntu, Mac OSX 等) 会有功能说明文档. 会注明日期,(安装方法有时效性) 项目结构: CentOS 6.5-X64 nginx python mysql redis mongodb Ubuntu 14.04-X64 ...

    brewski:Bash shell脚本,可使用Homebrew自动安装MacOS应用程序和软件包

    标题中的“brewski”是一个Bash shell脚本,设计用于利用Homebrew这个流行的包管理器在MacOS系统上自动安装应用程序和软件包。Homebrew,也被称为“喝啤酒”的命令行工具,是MacOS用户管理和安装开源软件的首选方式...

    android-shell-scripts:帮助与Android设备配合使用的Shell脚本

    在Android开发和管理中,利用Shell脚本可以极大地提高工作效率,尤其对于自动化任务和设备管理。"android-shell-scripts"是一个集合,它包含了多个用于与Android设备配合工作的Shell脚本,适用于Linux、OSX和Ubuntu...

    tweaks-osx:捆绑在 shell 脚本中的优化和调整

    捆绑在 shell 脚本中的优化和调整。 #关于 由于提高操作系统性能、安全性、行为等,此脚本修改了多个 OSX 配置设置。 #警告 尽管此更改通常会改善系统统计信息,但您应该在使用它之前考虑您的系统管理员/开发...

    scrt-9.2.3.2829.osx_x64.tar.gz

    对于shell脚本,它是用Bash或其他shell语言编写的文本文件,用于自动化执行一系列系统命令。这些脚本可以用来执行系统维护任务、备份数据、文件管理或者任何其他可以通过命令行完成的任务。如果"scrt"软件包包含...

    iterm-fish-fisher-osx:完整的指南和Bash脚本,用于安装命令行工具+自制软件+ iTerm2 + Fish Shell + Fisher +插件用于开发目的

    本文将详细介绍标题和描述中提到的"iterm-fish-fisher-osx"项目,这是一个专为MacOS(以前称为OSX)用户设计的全面指南和Bash脚本,旨在帮助用户快速安装和配置一系列命令行工具、自制软件、iTerm2、Fish Shell、...

    Wicked Cool Shell Scripts

    从提供的信息来看,文章摘录自一本名为《Wicked Cool Shell Scripts》的书籍,这本书由Dave Taylor和Brandon Perry共同编写,内容涵盖了为Linux、OSX和UNIX系统设计的101个shell脚本。书籍受到了业界的高度评价,被...

    shell脚本:我在macOS上很少使用的有用的shell脚本

    脚本不会根据目的验证和修复可能的链接警告。 因此,您有时可能会看到类似以下消息:“警告:您的地窖中有未链接的小桶。” brew_check.sh 显示已安装的Pip软件包的软件包信息。 更新pip3软件包并以直接方式pip...

    OSX-KVM-master.zip

    3. **脚本**:自动化安装和启动过程的shell或Python脚本。 4. **ISO镜像**:macOS的安装镜像,可能需要从Apple官方网站获取。 5. **文档**:可能包括更详细的使用说明和常见问题解答。 要在Linux上运行OSX-KVM,...

    Ubuntu-Mac-Theme:在 Ubuntu 14.04 和 14.10 上安装 Mac OSX Yosemite 主题的 Shell 脚本

    ##Mac OS X 主题适用于 Ubuntu 14.04 和 14.10 这是一个 shell 脚本,用于安装 Mac OS X Yosemite GTK 主题以及图标、徽标和其他小技巧,为您的 Ubuntu 机器提供完整的 Mac OSX 体验。 此脚本适用于 Ubuntu 14.04 和...

    scrt-9.2.2.2794.osx_x64.tar.gz

    用户可以通过Shell脚本自动化重复性任务,利用各种内置命令、外部工具和编程特性。 总的来说,"scrt-9.2.2.2794.osx_x64.tar.gz"是一个适用于macOS 64位系统的SecureCRT软件更新,通过.tar.gz压缩格式提供了更便捷...

    pomodoro-cli:另一个番茄钟定时器 shell 脚本。 这个简单的脚本使用 OSX 通知中心,并会在长时间休息时激活屏幕保护程序

    另一个番茄钟定时器 shell 脚本停止寻找番茄钟定时器应用程序,如果你有一个类 Unix 的 shell,你可以在一个 shell 行中破解一个: sleep $[60 * 25] ; echo " Pomodoro Finished! " 这个脚本基于这个简单的想法,但...

    installme-osx:我的个人脚本,用于设置新的OSX

    在使用“installme-osx”之前,用户需要确保系统已经安装了Homebrew,并且有一定的权限来运行脚本。脚本执行过程中,可能会根据用户的反馈和更新持续优化,以适应不断变化的软件生态。 总的来说,“installme-osx”...

    osx10.11+xcode7.3编译libVLC版本正确脚本执行过程

    libVLC在OSX10.11系统+XCode7.3的环境下正确编译的全过程,将shell脚本打印出来,大家可以参考,同时作为博客文章的附件参考,大家可以访问我的博客,参考如何在OSX上编译libVLC版本

    scrt-sfx-9.2.3.2829.osx_x64.tar.gz

    综上所述,"scrt-sfx-9.2.3.2829.osx_x64.tar.gz" 是一个为 macOS 64 位设计的自解压文件,采用 tar 和 gzip 压缩技术,内部可能包含了使用 shell 脚本控制的解压逻辑。用户只需运行这个文件,即可自动解压并执行...

    Complete-Install-Shell:重新安装osx时使用ez

    标题“Complete-Install-Shell: 重新安装osx时使用ez”指的是一个特定的Shell脚本,可能名为“ez”,它设计用于帮助用户轻松地重新安装macOS。这个脚本可能包含了从下载最新版本的macOS到执行安装过程的所有步骤,以...

    archey-osx:漂亮的macOS终端美化脚本

    克隆完成后,进入项目目录并运行脚本来查看美化后的系统信息: ```bash cd archey-osx-master ./archey-osx ``` 如果你想每次打开新的终端窗口时自动显示这些信息,可以将archey-osx脚本添加到你的zsh配置文件中,...

Global site tag (gtag.js) - Google Analytics