在 Ubuntu 上运行,包括 pm2 在内的所有内容的最新版本。
我的主用户“ubuntu”可以通过 ssh 进行完全访问, 只允许 sftp 访问的用户“sftp”,该用户还拥有 Nodejs 应用程序所在的文件夹。
要设置启动时自动启动和文件监视,我做了:
pm2 startup systemd
*pasted the cmd output*
pm2 start path/to/project/index.js --watch --name app_name
pm2 save
它会在启动时自动启动,但是当我对项目文件进行更改时(我确认它们已同步到远程),pm2 不会重新加载应用程序。
我在某些地方读到,监视更改的用户必须与所述文件的所有者相同,我该怎么做?在通过 pm2 启动应用程序之前,我尝试了 sudo su
,但这也不起作用。
提前谢谢您。
最佳答案
弄清楚了,这是pm2观察者的工作目录。
通过提供其工作目录的绝对路径,尝试了两种方法:
pm2 start/path/to/project --name my_app --watch/path/to/project
第二个是创建一个 json 文件供 pm2 加载,并在其中使用绝对路径:
{
"apps": [{
"name": "my_app",
"script": "/path/to/project",
"watch" : ["/path/to/project"],
}]
}
随后是pm2 start my_pm2_config.json
编辑:第三种解决方案(来自 pm2 git issue thread 关于 cwd)。
导航到项目目录并从那里运行 pm2 start index.js --name my_app --watch
。重新启动后,该工作目录将保留。
关于node.js - PM2——其他用户编辑时 watch 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72645097/