【云主机】解决不能让python程序在云主机后台上跑起来

让程序在云上跑起来

下面是我操作的完整过程

前置

  1. 我用的是阿里云的ubuntu系统。
  2. python环境为python3.6
  3. 使用的是win10的wsl之ubuntu连接的云主机

步骤

  1. 使用 ssh username@servername登录

  2. 注意username是服务器系统的某个用户名,要输入与之对应的password,不然就会permission denied。servername是服务器的IP地址

  3. 之后我执行的如下操作

  4. while python 查看位置
    cd /usr/bin
    ls python*
    ls -al python* 列出详情,查看软连接指向方式
    mv python2.7 python.bak 备份python2.7
    #mv python.bak python2.7 即可恢复
    rm -rf python 删除以前的软连接
    ln -s /usr/bin/python /usr/bin/python3 建立新的软连接
    //在vi 中加上环境要求 #!/usr/bin/python3
    将需要的代码上传到云主机

  5. 也可以不修改vi,每次编辑时指定python环境

一般ctrl + z,将当前进程挂起
jobs查看当前任务,fg + 任务PID,将任务前台恢复运行,bg即是后台运行。bg+任务PID,在后台执行,但后面就不能在挂起。

注意

为了要实现,断开连接后,程序还能直接运行,以及在后面能够看到输出结果
小提示:

>> 表示追加,> 表示覆盖

  1. Linux shell中有三种输入输出:
    分别为标准输入,标准输出,错误输出,分别对应0,1,2。
  2. 我们可以直接通过输出重定向>(或>>,表示追加)将某种输出重定向到其他地方,如设备,文件
  3. 但是,有时候,我们想把标准输出以及错误输出一起重定向某个文件,这是可以通过 2>&1 实现,也可以通过两个同时重定向到某个文件
    例如:

ls >ls.log 2>&1 //标准输出重定向到ls.log,而错误又重定向到标准输出
这两个位置不可换
ls 2>>ls.log 1>>ls.log
nohup能够在你退出登录的情况下仍然执行

办法:

  1. 使用nohup命令
  2. 使用输出重定向

网上有很多关于nohup使用:
准备执行的文件test.py;用test.log接受错误信息和标准输出
先进入程序所在文件目录。
命令如下:

nohup python test.py > test.log 2>&1 &

最后那个&是使其退出后还能运行。

注意:别直接关闭窗口,或是logout退出,请使用exit退出,亲测有效。

你可能感兴趣的:(错误解决,云主机)