浏览器无法打开住房和建设网站,做网站建设赚钱吗,简历上作品展示网站链接怎么做,深圳建设集团有限公司官网pycharm创建virtualenv环境的项目#xff1a; 在本地虚拟环境项目路径下生成依赖包记录文件#xff0c;然后上传到linux 服务器项目路径下#xff1a; 注意注意#xff1a;要在虚拟环境中生成#xff0c;才能将所有的项目依赖包构建在 requirements.txt文件中。
pip3 fre…pycharm创建virtualenv环境的项目 在本地虚拟环境项目路径下生成依赖包记录文件然后上传到linux 服务器项目路径下 注意注意要在虚拟环境中生成才能将所有的项目依赖包构建在 requirements.txt文件中。
pip3 freeze requirements.txt linux服务器上安装virtualenv环境
设置国内(清华)镜像源和升级pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
升级pip python -m pip install --upgrade pip
#开始安装虚拟环境
方式一
# python3 的 pip3 pip3 install virtualenv # 创建环境venv virtualenv venv
方式二
python3 -m venv venv
如果报错按照命令安装所需软件即可 # 启用此环境后续命令行前面出现venv代表此时环境已切换 source ./venv/bin/activate # 之后执行pip python3 等指令相当于是在此环境中执行 # 虚拟环境中安装项目的依赖包 pip3 install -r ./requirements.txt # 此时看到依赖已安装 pip3 list #上传项目的其他文件到服务器venv目录就不用传服务器 # 然后运行项目 python3 main.py # 或后台运行项目 nohup python3 main.py nohup.out 21
#退出虚拟环境如果是后台运行的项目退出虚拟环境后项目仍然是在运行的 deactivate /**************************************************************************/
python项目启动脚本run.sh
#!/bin/bash
#应用入口文件 APP_NAME/www/wwwroot/webpython/main.py #virtualenv虚拟环境启动命令 VENV_START/www/wwwroot/webpython/venv/bin/activate
#使用说明用来提示输入参数 usage(){ echo Usage: sh run.sh [start|stop|restart|status] }
#检查程序是否在运行 is_exist(){ pidps -ef|grep $APP_NAME|grep -v grep|awk {print $2} if [ -z ${pid} ];then return 1 else return 0 fi }
#启动方法 start(){ is_exist if [ $? -eq 0 ];then echo ${APP_NAME} is already running. pid${pid} else source ${VENV_START} nohup python3 ${APP_NAME} nohup.out 21 fi }
#停止方法 stop(){ is_exist if [ $? -eq 0 ]; then kill -9 $pid else echo ${APP_NAME} is not running fi }
#输出运行状态 status(){ is_exist if [ $? -eq 0 ]; then echo ${APP_NAME} is running. Pid is ${pid} else echo ${APP_NAME} is NOT running. fi }
#重启方法 restart(){ stop sleep 5 start } #根据输入参数选择执行对应方法不输入则执行使用说明 case $1 in start) start ;; stop) stop ;; status) status ;; restart) restart ;; *) usage ;; esac
/*************************************************************************/
符号
这两天要在服务器端一直运行一个Python脚本当然就想到了在命令后面加符号 $ python /data/python/server.py python.log 说明 1、 表示把标准输出STDOUT重定向到 那个文件这里重定向到了python.log 2、 表示在后台执行脚本 这样可以到达目的但是我们退出shell窗口的时候必须用exit命令来退出否则退出之后该进程也会随着shell的消失而消失退出、关闭
使用nohup(not hang up) $ nohup python /data/python/server.py python.log3 21 说明 1、1是标准输出STDOUT的文件描述符2是标准错误STDERR的文件描述符1 python.log 简化为 python.log表示把标准输出重定向到python.log这个文件 2、21 表示把标准错误重定向到标准输出这里1表示标准输出 为什么需要将标准错误重定向到标准输出的原因是因为标准错误没有缓冲区而STDOUT有。 这就会导致 commond python.log 2 python.log 文件python.log被两次打开而STDOUT和 STDERR将会竞争覆盖这肯定不是我门想要的 3、好了我们现在可以直接关闭shell窗口我用的是SecureCRT用的比较多的还有Xshell而不用再输入exit这个命令来退出shell了 $ ps aux|grep python
tomener 1885 0.1 0.4 13120 4528 pts/0 S 15:48 0:00 python /data/python/server.py
tomener 1887 0.0 0.0 5980 752 pts/0 S 15:48 0:00 grep python现在当我们直接关闭shell窗口再连接上服务器查看Python的进程发现进程还在
但是在python运行中却查看不到输出
因为
python的输出有缓冲导致python.log3并不能够马上看到输出。
使用-u参数使得python不启用缓冲。
所以改正命令就可以正常使用了 $ nohup python -u test.py out.log 21 nohup和的区别 指在后台运行nohup 不挂断的运行注意并没有后台运行的功能就是指用nohup运行命令可以使命令永久的执行下去和用户终端没有关系例如我们断开SSH连接都不会影响他的运行注意了nohup没有后台运行的意思才是后台运行 是指在后台运行但当用户推出(挂起)的时候命令自动也跟着退出
那么我们可以巧妙的吧他们结合起来用就是nohup COMMAND 这样就能使命令永久的在后台执行
例如 1.sh test.sh 将sh test.sh任务放到后台 即使关闭xshell退出当前session依然继续运行但标准输出和标准错误信息会丢失缺少的日志的输出
将sh test.sh任务放到后台 关闭xshell对应的任务也跟着停止。
nohup sh test.sh 将sh test.sh任务放到后台关闭标准输入终端不再能够接收任何输入标准输入重定向标准输出和标准错误到当前目录下的nohup.out文件即使关闭xshell退出当前session依然继续运行。nohup sh test.sh 将sh test.sh任务放到后台但是依然可以使用标准输入终端能够接收任何输入重定向标准输出和标准错误到当前目录下的nohup.out文件即使关闭xshell退出当前session依然继续运行。
任务前后台的切换
shell支持作用控制有以下命令实现前后台切换
command 让进程在后台运行jobs 查看后台运行的进程fg %n 让后台运行的进程n到前台来bg %n 让进程n到后台去kill %n 杀死job font colorCrimsonPS: “n” 为jobs命令查看到的job编号不是进程编号. fg、bg、jobs、、ctrl z 都是跟系统任务有关的/font
一、
这个用在一个命令的最后可以把这个命令放到后台执行 python test.py 二、ctrl z
可以将一个正在前台执行的命令放到后台并且暂停
三、jobs
查看当前有多少在后台运行的命令 jobs
[1]- Stopped vim ~/.bash_profile
[2] Stopped vim /etc/profile四、fg
将后台中的命令调至前台继续运行 如果后台中有多个命令可以用 fg %jobnumber将选中的命令调出%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。 fg %1五、bg
将一个在后台暂停的命令变成继续执行 如果后台中有多个命令可以用bg %jobnumber将选中的命令调出%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。 bg %1
[1] vim ~/.bash_profile [1] Stopped vim ~/.bash_profile六、kill
杀死jobs中具体jobnumber jobs
[1] Stopped vim ~/.bash_profile
[2]- Stopped vim /etc/profile杀死 jobnumber1
kill %1[1] Stopped vim ~/.bash_profile
在查询下jobs
jobs
[2] Stopped vim /etc/profile补充
最近使用nohup创建了一个后台进程默认日志输出到了nohup.out文件中程序跑起来也就没再管 过了大约一周发现硬盘空间不够了于是查找原因发现这个nohup.out文件已经到了70G了导致硬 盘空间不足了。 解决方案
只输出错误信息到日志文件 nohup ./program /dev/null 2log 什么信息也不要 nohup ./program /dev/null 21