起因
自己经常用Typora写东西做记录,有时候想在下班或周末接着写,但是Typora并没有远程同步的功能,所以想写个小工具帮自己做上传同步:服务开机自启动并拉取内容,监听工作库目录有变动则同步到远端。
如果想使用脚本或者快捷命令打开其他软件可以参考推荐一个工作区管理小工具中关于open 命令的描述。
Windows 设置开机自启
可以参考 Windows设置自己的程序开机自动启动
MacOS 设置服务开机自启动
方法1:设置登录项
进入系统偏好设置 -> 用户与群组(账户) -> 登录项
点击下方的+就可以添加登录项,会在开机后自动运行,设置了的开机自启项也会在这里管理。
要注意的是如果使用Node.js脚本作为启动项,需要删除文件后缀并添加可执行权限(否则开机后会使用编辑器打开,而不是执行脚本)。
方法2:扩展坞设置登录打开
扩展坞 -> 选项 -> 登录时打开,但是只能针对安装的应用程序。
方法3: Launchd配置
Launchd
是Mac
下用于初始化操作系统的关键进程。通过启动硬盘指定目录下的配置文件,来完成启动任务。
plist 配置
比较有用的配置关键字:
PM2设置开机自启
pm2的startup 命令可以设置nodejs脚本开机自启动。pm2的对不同操作系统进行了不同处理:
startup代码
其中对于MacOS的处理也是通过launchd来实现的,会在用户主目录下的Library/LaunchAgents/文件夹中新增一个plist文件:
switch(platform) {...case 'macos':case 'darwin':case 'launchd':template = getTemplate('launchd');destination = path.join(process.env.HOME, 'Library/LaunchAgents/' + launchd_service_name + '.plist');commands = ['launchctl load -w ' + destination]break;default:throw new Error('Unknown platform / init system name');}
pm2 startup使用的plist模板
欢迎关注微信公众号"混沌前端"
参考:
利用 Launchd 定制 Mac 启动任务
Mac下用Launchd实现使用rc.local执行开机启动命令
Mac Launchd 启动任务
Windows设置自己的程序开机自动启动
如果觉得《设置Node.js脚本开机自启动》对你有帮助,请点赞、收藏,并留下你的观点哦!