首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建cron以重新启动pm2实例失败

创建cron以重新启动pm2实例失败
EN

Stack Overflow用户
提问于 2017-11-12 11:36:53
回答 2查看 1.8K关注 0票数 0

我很难用cron选项卡重新启动我的实例

代码语言:javascript
复制
#!/usr/bin/node
*15 * * * * /usr/bin/node /usr/bin/pm2 restart 4

但我的问题是,我有两个pm2守护进程。我想要的是在/opt.pm2中,所以每次我想要使用pm2时,我都需要使用以下命令

代码语言:javascript
复制
export PM2_HOME="/opt/.pm2"

我需要知道如何在crontab中传递这个env变量来重新启动实例4,因为在/usr/bin/pm2 2中,我没有运行我的应用程序,明白吗?

但我明白错误

代码语言:javascript
复制
From root@ip120.ip-46-105-248.eu  Sun Nov 12 11:23:01 2017
Return-Path: <root@ip120.ip-46-105-248.eu>
X-Original-To: root
Delivered-To: root@ip120.ip-46-105-248.eu
Received: by ip120.ip-46-105-248.eu (Postfix, from userid 0)
    id E84CA100921; Sun, 12 Nov 2017 11:23:01 +0000 (WET)
From: "(Cron Daemon)" <root@ip120.ip-46-105-248.eu>
To: root@ip120.ip-46-105-248.eu
Subject: Cron <root@ip120> /usr/bin/node /usr/bin/pm2 restart 4
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=4300>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20171112112301.E84CA100921@ip120.ip-46-105-248.eu>
Date: Sun, 12 Nov 2017 11:23:01 +0000 (WET)

Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [4](ids: 4)
[PM2][ERROR] Process 4 not found
┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬─────┬─────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
└──────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────┴─────┴──────────┘
 Module activated
┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬─────────────┐
│ Module        │ version │ target PID │ status │ restart │ cpu │ memory      │
├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼─────────────┤
│ pm2-logrotate │ 2.2.0   │ N/A        │ online │ 0       │ 0%  │ 91.223 MB   │
└───────────────┴─────────┴────────────┴────────┴─────────┴─────┴─────────────┘
 Use `pm2 show <id|name>` to get more details about an app
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-12 11:39:38

如果除环境变量之外,所有其他条件都是相等的,则可以将crontab命令设置为env PM2_HOME="/opt/.pm2" /usr/bin/node /usr/bin/pm2 restart 4。或者/usr/bin/env而不是env

如果您不能以这种方式获得成功,您可以编写一个小的shell脚本,它只需要导出PM2_HOME值并重新启动pm2。然后将这个shell脚本作为cron命令。

票数 0
EN

Stack Overflow用户

发布于 2017-11-12 12:22:42

做“萨弗特”告诉我的事

代码语言:javascript
复制
crontab -l

#!/usr/bin/node
*/45 * * * *  env PM2_HOME="/opt/.pm2" /usr/bin/node /usr/bin/pm2 restart 4

我得到了这个输出

代码语言:javascript
复制
From root@ip120.ip-46-105-248.eu  Sun Nov 12 12:15:02 2017
Return-Path: <root@ip120.ip-46-105-248.eu>
X-Original-To: root
Delivered-To: root@ip120.ip-46-105-248.eu
Received: by ip120.ip-46-105-248.eu (Postfix, from userid 0)
        id 7FC6010092C; Sun, 12 Nov 2017 12:15:02 +0000 (WET)
From: "(Cron Daemon)" <root@ip120.ip-46-105-248.eu>
To: root@ip120.ip-46-105-248.eu
Subject: Cron <root@ip120> env PM2_HOME="/opt/.pm2" /usr/bin/node /usr/bin/pm2 restart 4
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=4304>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20171112121502.7FC6010092C@ip120.ip-46-105-248.eu>
Date: Sun, 12 Nov 2017 12:15:02 +0000 (WET)

Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [4](ids: 4)
[PM2] [wscontroller-gps-service](4) ✓
┌──────────────────────────┬────┬─────────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name                 │ id │ mode    │ pid   │ status │ restart │ uptime │ cpu │ mem       │ watching │
├──────────────────────────┼────┼─────────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ wscontroller-api         │ 2  │ cluster │ 25521 │ online │ 0       │ 47m    │ 0%  │ 47.6 MB   │ disabled │
│ wscontroller-gps-service │ 4  │ fork    │ 2974  │ online │ 5       │ 0s     │ 99% │ 14.0 MB   │ disabled │
│ wscontroller-proxy       │ 5  │ cluster │ 25549 │ online │ 0       │ 47m    │ 0%  │ 45.5 MB   │ disabled │
│ wscontroller-service     │ 3  │ cluster │ 29681 │ online │ 1       │ 28m    │ 31% │ 83.6 MB   │ disabled │
│ wscontroller-ui-server   │ 1  │ cluster │ 25515 │ online │ 0       │ 47m    │ 0%  │ 35.7 MB   │ disabled │
└──────────────────────────┴────┴─────────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
 Module activated
┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬─────────────┐
│ Module        │ version │ target PID │ status │ restart │ cpu │ memory      │
├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼─────────────┤
│ pm2-logrotate │ 2.2.0   │ N/A        │ online │ 0       │ 0%  │ 36.527 MB   │
└───────────────┴─────────┴────────────┴────────┴─────────┴─────┴─────────────┘
 Use `pm2 show <id|name>` to get more details about an app
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47248328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档