如何配置程序以使其在 Mac OS X 启动时(之后)自动运行?
具体来说,我试图让 VMWare VM 在 OS X 重启后自动启动,但运行任何(非图形)程序都会很有用。
(请注意,vmrun 在后台启动 VMware VM,Fusion GUI 可以稍后获取它们。因此,这与我登录后在桌面上启动 VM 无关!)
答案1
在 Mac 上,如果您想在启动时(而不是登录时)运行脚本或应用程序,请将其添加到 /System/Library/StartupItems。对于 vmrun,我会编写一个 shell 脚本来正确设置路径(包括 VMWare Fusion 目录)并启动您想要运行的特定虚拟机。)
如果您希望在登录时运行它,您可以将项目添加到系统偏好设置的用户部分下的“登录项”。
答案2
我尝试了几种方法,但得到了最奇怪的结果。这是最终奏效的方法:
<?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.myvmname</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Application Support/VMware Fusion/vmrun</string>
<string>start</string>
<string>pathtovirtualmachinevmxfile.vmx</string>
<string>nogui</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>myusername</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
我在 /Library/LaunchDeamons 中创建了一个包含上述内容的文件 com.example.vmname.plist,并确保其所有者:组是 root:wheel。Apple 开发人员工具为 plist XML 文件提供了一个出色的编辑器。
这会产生以下行为,这对于我的环境来说是理想的(我有一台八核 Mac Pro,配备 8 GB 内存,可以在后台运行多个虚拟机,而不是暂停或关闭它们):
当 Mac OS X 启动时,虚拟机会在后台启动。这也适用于多台虚拟机。
如果虚拟机在任何时候崩溃,它将立即重新启动。
当 VM 关闭或停止时也是如此,除非从 Fusion GUI 执行(后一种行为允许编辑 VM 设置)。
当 Mac OS X 关闭时,虚拟机会突然停止。我必须找到一种方法,在系统重启之前更优雅地关闭它们。
答案3
这些解决方案太复杂了。迄今为止最简单的方法是进入系统偏好设置->用户和组->登录项选项卡,单击加号并选择要启动的应用程序。
您还可以在“系统偏好设置”->“用户和组”中选择“登录选项”,然后选择您的用户,以便该用户自动登录。除非您允许其他人物理访问您的机器,否则这不会有任何安全风险!
任何能够物理访问您机器的人都可以从外部驱动器启动(或使用其他各种方法绕过您的登录密码)并访问您硬盘上的所有文件。保护您计算机安全的正确方法不是每次您走到计算机前时都提醒您输入自己的密码,而是锁上您的房间!这样做还有一个好处,就是不允许您 3 岁的孩子扯掉您键盘上的按键、将橙汁洒在您的 Mac Pro 上等。
因此请记住,登录密码仅适用于共享工作区/环境,即您的计算机位于其他人可以接近和使用的地方 - 我认为您不应该对家用电脑这样做。如果您拥有适当的物理安全性,那么登录密码只是浪费您的时间,应该禁用,它几乎没有任何安全性。