一、官方文档:

官方相关文档:http://pm2.keymetrics.io/docs/usage/startup/#generating-a-startup-script

二、具体操作过程如下:

1、生成开机启动 pm2 服务的配置文件

运行:pm2 startup 命令

➜  ~ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/home/user1/.nvm/versions/node/v8.8.1/bin /home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2
startup systemd -u user1 --hp /home/user1

粘贴上面的命令到终端,如下:

➜  init.d sudo env PATH=$PATH:/home/user1/.nvm/versions/node/v8.8.1/bin /home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2
startup systemd -u user1 --hp /home/user1
[sudo] user1 的密码:

在非root用户下会让你输入密码。密码输入完成后终端会出现如下内容:

PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target [Service]
Type=forking
User=user1
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/home/user1/.nvm/versions/node/v8.8.1/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/user1/.pm2
PIDFile=/home/user1/.pm2/pm2.pid ExecStart=/home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2 kill [Install]
WantedBy=multi-user.target Target path
/etc/systemd/system/pm2-user1.service
Command list
[ 'chmod +x /etc/systemd/system/pm2-user1.service',
'systemctl enable pm2-user1',
'systemctl start pm2-user1',
'systemctl daemon-reload',
'systemctl status pm2-user1' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-user1.service
[PM2] Making script booting at startup...
>>> Executing chmod +x /etc/systemd/system/pm2-user1.service
[DONE]
>>> Executing systemctl enable pm2-user1
Created symlink from /etc/systemd/system/multi-user.target.wants/pm2-user1.service to /etc/systemd/system/pm2-user1.service.
[DONE]
>>> Executing systemctl start pm2-user1
[DONE]
>>> Executing systemctl daemon-reload
[DONE]
>>> Executing systemctl status pm2-user1
● pm2-user1.service - PM2 process manager
Loaded: loaded (/etc/systemd/system/pm2-user1.service; enabled; vendor preset: disabled)
Active: active (running) since �� -- :: CST; 47ms ago
Docs: https://pm2.keymetrics.io/
Main PID: (PM2 v2.7.2: God)
CGroup: /system.slice/pm2-user1.service
‣ PM2 v2.7.2: God Daemon (/home/user1/.pm2) �� :: izbp14un3b3r5tbimwuxlbz systemd[]: Starting PM2 process manager...
�� :: izbp14un3b3r5tbimwuxlbz pm2[]: [PM2] Resurrecting
�� :: izbp14un3b3r5tbimwuxlbz systemd[]: Started PM2 process manager.
[DONE]
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save [PM2] Remove init script via:
$ pm2 unstartup systemd

按照提示的命令进行配置就好了。你会在/etc/systemd/system文件夹下看到pm2-user1.service文件

2、pm2 save, 保存当前 pm2 运行的各个应用保存到 /home/user1/.pm2/dump.pm2下,开机重启时读取该文件中的内容启动相关应用。

➜  ~ pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /home/user1/.pm2/dump.pm2

3、查看配置是否开启:使用命令:systemctl status pm2-user1.service

➜  system systemctl status pm2-user1.service
● pm2-user1.service - PM2 process manager
Loaded: loaded (/etc/systemd/system/pm2-user1.service; enabled; vendor preset: disabled)
Active: active (running) since �� -- :: CST; 44min ago
Docs: https://pm2.keymetrics.io/
Main PID: (PM2 v2.7.2: God)
CGroup: /system.slice/pm2-user1.service
‣ PM2 v2.7.2: God Daemon (/home/user1/.pm2) �� :: izbp14un3b3r5tbimwuxlbz pm2[]: [PM2] Resurrecting

参考:http://imweb.io/topic/57c8cbb27f226f687b365636

http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

pm2 设置开机启动的更多相关文章

  1. ubuntu下设置开机启动服务

    原文:http://blog.csdn.net/dante_k7/article/details/7213151 在ubuntu10.04之前的版本都是使用chkconfig来进行管理,而在之后的版本 ...

  2. windows设置开机启动项

    一.windows下设置开机启动有如下方法 1 注册表启动项目RUN 2 计划任务,在"windows管理">"计划任务管理器"中新建任务,在操作栏指定要 ...

  3. centos7安装docker并设置开机启动

    版本要求:查看内核版本,需大于3.10 [root@localhost ~]# uname -r -.el7.x86_64 更新内核:如果是生产机器务必慎重更新内核,避免出现不必要的问题. sudo ...

  4. openerp 7 在ubuntu上设置开机启动

    我们要让openerp开机运行起来. 第一步,先进入系统目录: cd /etc/init.d 第二步,创建文件.命名为openerp-server sudo vi openepr-server 第三步 ...

  5. [转载]C#设置开机启动

    原理就是在注册表启动项里添加一项.路径:SOFTWARE\Microsoft\Windows\CurrentVersion\Run或者直接:运行->regedit找到这个路径添加一项. usin ...

  6. Fedora 21 设置开机启动脚本

    sudo touch /etc/rc.d/rc.localsudo vim /etc/rc.d/rc.local 在/etc/rc.d/rc.local文件中写入, 然后使用:wq命令 保存并退出. ...

  7. windows下架设SVN服务器并设置开机启动

    原文:windows下架设SVN服务器并设置开机启动 1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装 ...

  8. Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...

  9. Redis 设置开机启动

    1. 将下列代码保存为文件redis, 置于 /etc/init.d 下面 ########################### # chkconfig: 2345 90 10 redis服务必须在 ...

随机推荐

  1. 用Jersey构建RESTful服务7--Jersey+SQLServer+Hibernate4.3+Spring3.2

    一.整体说明 本例执行演示了用 Jersey 构建 RESTful 服务中.怎样集成 Spring3 二.环境 1.上文的项目RestDemo 2.Spring及其它相关的jar ,导入项目 三.配置 ...

  2. 转:VS2013快捷键大全

    Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL ...

  3. ETL面试题

    1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL项目组的作用是什么? 答 ...

  4. Oracle11g口令过期的解决

    今天发现服务器上的Oracle11g突然登录不上去了,提示ORA-28002错误,说是口令过期. 1. 用DBA账户登录SQL PLUS.我用的是SYS. 2. 系统会提示口令失效,但是会马上让你重置 ...

  5. 【Linux】文件夹及作用说明

    Tips Linux关机注意事项: 远程重启服务前,先停止相关服务 使用安全命令重启shutdown –r now,该命令在重启时会正常保存和终止服务器上正在运行的程序 不建议在本地直接对远程服务器关 ...

  6. django之创建第4-2个项目-访问class类属性和类方法

    1.修改index <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  7. 如何导出标准模板库(STL)类的实例化和包含STL类对象数据成员的类

    本文翻译自 https://support.microsoft.com/zh-cn/help/168958/how-to-export-an-instantiation-of-a-standard-t ...

  8. 转 configure: error: Cannot find ldap.h

    检查下面是不是已经安装,如果没有安装之:检查:yum list openldapyum list openldap-devel安装 :yum install openldap yum install ...

  9. 【PHP5.3+】获取getCurrentUrl()中 的地址url

    1.在控制器中调用其他 扩展或者类 的方法时候,getCurrentUrl()方法 是获取的[当前控制器下方法]的路由,不是[其他 扩展或者类 方法]的路由!!! 2.getCurrentUrl()方 ...

  10. k8s oomkilled超出容器的内存限制

    超出容器的内存限制 只要节点有足够的内存资源,那容器就可以使用超过其申请的内存,但是不允许容器使用超过其限制的 资源.如果容器分配了超过限制的内存,这个容器将会被优先结束.如果容器持续使用超过限制的内 ...