让程序在云上跑起来
下面是我操作的完整过程
前置
- 我用的是阿里云的ubuntu系统。
- python环境为python3.6
- 使用的是win10的wsl之ubuntu连接的云主机
步骤
-
使用 ssh username@servername登录
-
注意username是服务器系统的某个用户名,要输入与之对应的password,不然就会permission denied。servername是服务器的IP地址
-
之后我执行的如下操作
-
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
将需要的代码上传到云主机 -
也可以不修改vi,每次编辑时指定python环境
一般ctrl + z,将当前进程挂起
jobs查看当前任务,fg + 任务PID,将任务前台恢复运行,bg即是后台运行。bg+任务PID,在后台执行,但后面就不能在挂起。
注意
为了要实现,断开连接后,程序还能直接运行,以及在后面能够看到输出结果
小提示:
>> 表示追加,> 表示覆盖
- Linux shell中有三种输入输出:
分别为标准输入,标准输出,错误输出,分别对应0,1,2。 - 我们可以直接通过输出重定向>(或>>,表示追加)将某种输出重定向到其他地方,如设备,文件
- 但是,有时候,我们想把标准输出以及错误输出一起重定向某个文件,这是可以通过 2>&1 实现,也可以通过两个同时重定向到某个文件
例如:
ls >ls.log 2>&1 //标准输出重定向到ls.log,而错误又重定向到标准输出
这两个位置不可换
ls 2>>ls.log 1>>ls.log
nohup能够在你退出登录的情况下仍然执行
办法:
- 使用nohup命令
- 使用输出重定向
网上有很多关于nohup使用:
准备执行的文件test.py;用test.log接受错误信息和标准输出
先进入程序所在文件目录。
命令如下:
nohup python test.py > test.log 2>&1 &
最后那个&是使其退出后还能运行。