起因

自己经常用Typora写东西做记录,有时候想在下班或周末接着写,但是Typora并没有远程同步的功能,所以想写个小工具帮自己做上传同步:服务开机自启动并拉取内容,监听工作库目录有变动则同步到远端。

如果想使用脚本或者快捷命令打开其他软件可以参考推荐一个工作区管理小工具中关于open 命令的描述。

Windows 设置开机自启

可以参考 Windows设置自己的程序开机自动启动

MacOS 设置服务开机自启动

方法1:设置登录项

进入系统偏好设置 -> 用户与群组(账户) -> 登录项

点击下方的+就可以添加登录项,会在开机后自动运行,设置了的开机自启项也会在这里管理。

要注意的是如果使用Node.js脚本作为启动项,需要删除文件后缀并添加可执行权限(否则开机后会使用编辑器打开,而不是执行脚本)。

方法2:扩展坞设置登录打开

扩展坞 -> 选项 -> 登录时打开,但是只能针对安装的应用程序。

方法3: Launchd配置

LaunchdMac下用于初始化操作系统的关键进程。通过启动硬盘指定目录下的配置文件,来完成启动任务。

目录 描述
~/Library/LaunchAgents 当前用户登陆后启动的服务
/Library/LaunchAgents 由管理员定义的用户登陆后启动的服务
/Library/LaunchDaemons 由管理员定义的守护进程任务项
/System/Library/LaunchAgents MacOS系统定义的用户任务项
/System/Library/LaunchDaemons MacOS系统定义的守护进程任务项
plist 配置

比较有用的配置关键字:

标签 必填 说明
Label 标识符,用来表示该任务的唯一性
Program 程序名称,用来说明运行哪个程序、脚本
ProgramArguments 同上,与Program二选一或一起使用,只是可以运行多个程序、可带参数
WatchPaths 监控路径,当路径文件有变化是运行程序,也是数组
RunAtLoad 是否在加载的同时启动
StartCalendarInterval 运行的时间,单个时间点使用dict,多个时间点使用 array -> dict
StartInterval 时间间隔,与StartCalendarInterval使用其一,单位为秒
StandardInPath、StandardOutPath、StandardErrorPath 标准的输入输出错误文件,这里建议不要使用.log作为后缀,会打不开里面的信息

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脚本开机自启动相关推荐

  1. 利用Docker设置Node.js

    docker是一个开源的应用容器引擎,可以为我们提供安全.可移植.可重复的自动化部署的方式.docker采用虚拟化的技术来虚拟化出应用程序的运行环境.如上图一样.docker就像一艘轮船.而轮船上面的 ...

  2. 用 node.js 脚本替代复杂的 npm script

    用 node.js 脚本替代复杂的 npm script Node.js 丰富的生态能赋予我们更强的能力,对于前端工程师来说,使用 Node.js 来编写复杂的 npm script 具有明显的 2 ...

  3. Node JS环境设置– Node.js安装

    In my previous post, we have discussed about "Introduction to Node JS Platform". Now we ha ...

  4. Node.js脚本项目合集(一):Node.js+FFmpeg实现批量从B站导出离线缓存视频到mp4格式,mp4转mp3,实现听歌自由

    Node.js脚本项目合集(一):Node.js+FFmpeg实现批量从B站导出离线缓存视频到mp4格式,mp4转mp3,实现听歌自由 前言 一.准备工作以及介绍 1.什么是FFmpeg 2.FFmp ...

  5. 下载n站本子的 node.js 脚本

    问题: n站上的本子,虽然每一本都有下载按钮,但是实测通过其提供的种子文件,下载速度并不理想,甚至有时候会卡在一个地方下不动.可是本子毕竟不同于其他东西,它在实质上只是许多图片的合集.用户打开每一个带 ...

  6. centos下设置node.js开机启动(并且启动自己的项目js)

    1.请确保安装了node 2.安装pm2 npm install pm2 -g 安装完毕后 pm2 -v 出现以下界面就代表安装成功 (如果报错bash:pm2:command not found 解 ...

  7. 树莓派开机运行node.js脚本的方法

    http://gyzx.swjtu.edu.cn/icsites/devzone/node/352 一.配置Raspberry Pi无线网络. 插上无线网卡 sudo nano /etc/wpa_su ...

  8. linux系统设置开机启动,linux下设置自己的程序开机自启动

    1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...

  9. Node.js Web开发_设置Node.js(1)

    电子书推荐 Multithreaded JavaScript: Concurrency Beyond the Event Loop Computers For Seniors For Dummies, ...

  10. Windows下怎样使用bat设置Redis和Nginx开机自启动

    场景 若依前后端分离版本,Windows下使用Nginx代理的方式进行部署(全流程,图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/d ...

最新文章

  1. u3d局域网游戏网络(c# socket select 模型)
  2. C语言回调函数demo(帮助理解)以海康isapiExternDemo回调函数为例
  3. 文献学习(part6)--Clustering ensemble based on sample’s stability
  4. Shiro介绍及主要流程
  5. 晚上:上课笔记,听完自己独立完成
  6. Python——列表生成式
  7. sql server权限_保护SQL Server审核的访问权限
  8. tomcat组播实现session一致性_java会话技术-Session
  9. ubuntu 下载工具 easyMule2.0
  10. FFmpeg下载网络视频流
  11. 群辉安装linux软件下载,群晖系统Synology DSM安装ipkg包管理和套件安装方法
  12. Vijos 1006
  13. 阻止软件连接网络(Win)
  14. python程序下载腾讯企业邮箱附件_python批量下载邮件附件
  15. 2020-04 前端技术汇总
  16. 如何做自己开发一个app
  17. 如何在linux上使用QQ(在终端上使用qq) mojo-qq
  18. 杰里之 打开混响通话有回音【篇】
  19. pyqt_利用ScrollBar控制图片位置(实现滑动效果)
  20. linuxpython安装hive_Linux离线环境安装Pyhive包及通用方式

热门文章

  1. 小区广播机制(MIB、SIB)
  2. Flutter 使用 GetIt 容器将新增和编辑后的数据同步更新到列表
  3. 云计算是用来做什么的
  4. 如何提高测试工作效率
  5. win10查看激活时间(Win10查看激活信息)
  6. SPSS 随机区组秩和检验
  7. ps抠图怎么放大图片_ps中在使用抠图工具时如何用快捷键移动放大的原始图片?...
  8. python绘制动态数字时钟_用 Python 画动态时钟
  9. 好用到叫出声!强烈推荐 10 款 Mac 软件!
  10. 用存储过程将excel转置导出