我试图在关闭终端后保持一个进程。 是一个带有express的node.js项目。 基本上,对于其他过程,我保持活动过程:
$ node server.js &
我知道,有可能完成SSH连接并关闭控制台。 但是通过快递,我开始了我的过程:
$ npm start &
总是,在一次请求之后,该过程就会死亡。 是否存在保持流程存活的方法? 我正在使用带有Ubuntu实例的EC2。
答案 0 :(得分:11)
答案 1 :(得分:2)
我知道这是一个老问题,但是对于识别出这个问题的新访客,我将在这里大步走出去,猜测您想运行一个一直在运行的Web应用程序:可以为访问者提供昼夜IP地址的服务。如果不是这种情况,那么screen
或nohup
可以正常工作,但如果是这样,最好的做法是使用pm2或forever之类的守护程序
守护进程可以说是使服务始终保持运行的最佳方式……例如,当您想通过SSH与Ubuntu实例通信时,您的Ubuntu实例如何知道?这是由于SSH守护程序sshd。守护程序具有始终在侦听的代码,就像您希望使用Web应用程序一样。
答案 2 :(得分:0)
使用场景
在您的终端上输入:
$ docker run --rm $CONTAINER_IMAGE:test rails db:migrate RAILS_ENV=test && bundle exec rails test
== 20181005152311 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0014s
== 20181005152311 CreateUsers: migrated (0.0014s) =============================
/bin/sh: eval: line 86: rails: not found
ERROR: Job failed: exit code 127
然后
screen
并通过立即按“ Ctrl + a”和“ d”
断开会话此处再次附加会议:Source
它适用于CentOS7
答案 3 :(得分:0)
您也可以使用child_process.fork。