:::info 💡 部署后也会碰到很多问题,比如自动关闭已经启动的项目等等。 ::: 汇报人:puppet洛洛
日期:2022年4月29日00:10:06

1.自动关闭已启动的项目

1.1,现象描述:
下班后才有时间修改代码再重新部署,部署后能成功访问项目,可是等到第二天发现502了。
1.2,问题原因:
经过网上查询,发现ssh工具断开后项目就会断开,实在没想到是这个原因,如图为ssh工具tabby。
具体原因:
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。
image.png
1.3,解决方案:
阿里云的方案:
https://help.aliyun.com/document_detail/42523.html?spm=5176.2000002.0.0.616d7b0fuIjmqa
阿里云实际上已经给出了三种方案:

  1. 通过使用管理终端连接Linux实例登录实例。
  2. 执行所需程序或脚本。
  3. 之后需要查看任务执行状态时,再次连接管理终端查看即可。

第一种就是直接用阿里云的后台运行命令,
可行是可行,但是我有频繁部署的需求,用阿里云页面里的方式不是很方便。
第二种是使用nohup命令,
通过tabby远程登录后使用该命令,即使再退出tabby也还是会正常执行程序,关闭程序的时候通过kill命令干掉即可。
第三种是通过screen工具执行。
Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用,这样ssh工具断开也不会受影响。
先下载该工具:sudo apt-get install screen
使用步骤:

  1. 执行如下命令,创建screen窗口。screen -S [$Name]说明:[$Name]用来标注screen窗口用途。
  2. 执行如下命令,列出screen窗口。screen -ls系统显示类似如下。
    第三章,一些部署问题 - 图2
  3. 当需要运行脚本、执行程序时,在命令前添加screen即可
  4. 然后使用Ctrla键,再按下d键,就可以退出SSH登录,但不会影响screen程序的运行。
  5. 若需要继续工作时,登录实例,然后执行如下命令,恢复会话即可。screen -r -d

    2.其他问题