使用nohup在Centos上部署netcore项目

510 阅读2分钟

关于nohup

nohup command & 命令。这条命令表示:不挂断地后台执行command,输出在当前目录的nohup.out 文件中(补充:如果当前目录的nohup.out文件不可写,那么输出在 $HOME/nohup.out 文件中)。nohub表示不挂断执行,&表示后台执行。下边我们看一下怎样使用nohub来部署我们的项目。

启动方式

关于启动方式,你可以在 Xshell 会话窗口中,进入之前发布到服务器上的项目目录,通过命令 dotnet 你的项目名.dll 来启动网站,但是这样只要 Ctrl + C 或断开会话连接,项目进程就被结束了,因此可以用来做临时测试。若要使网站持续运行下去,可以使用下面方法。

nohup 启动

nohup dotnet 你的项目名.dll

这样一来你的网站就跑起来了,并且断开会话进程也不会被关闭,简单和无需进行配置就是它的优点,但若是想要关闭就麻烦了,需要 ps -ef | grep dotnet 找到对应的进程 id 再将其 kill。另外一个缺点是,如果服务器重启,或者你的项目出现错误意外退出了,那么你的项目是不会自动重新启动的。

下面是我用到的一些命令,仅供参考

权限
路径是完整路径  在根目录执行
chmod u+x /test/*

启动服务  先cd到目录下
nohup ./DFTech.Service --urls=http://*:8803 &

退出  

exit



netstat -nap|grep 进程号



先根据端口号查找pid(进程号)
netstat -nlp | grep 22
结果如下:
unix  2      [ ACC ]     STREAM     LISTENING     12249    -                 
12249就是它的pid(进程号)

再根据进程号查找路径,如下:
ll /proc/12499/cwd
cwd后面的路径就是端口号8703程序的路径
问题解决



查看进程

ps -ef

查看到进程id之后,使用netstat命令查看其占用的端口

netstat -nap|grep 进程号

关闭进程

kill -9 进程号