伙伴云客服论坛»论坛 S区 S零代码 查看内容

0 评论

0 收藏

分享

linux后台运行python程序

1. 后台运行代码命令
  1. nohup python -u ***.py >***.log 2>&1 &
复制代码
  1. #生成后台任务[jobnum] PID
  2. [1] 25282
复制代码
nohup 加在命令的最前面,表示不挂断的运行命令
-u 不缓存,立即加载终端数据
.log 终端输出的数据,不添加将自动生成nohup.out文件
2>&1 将错误内容重定向输入到规范输出中去
& 加载命令的最后面,表示这个命令放在后台执行
2. 查看后台命令

jobs 查看当前终端后台执行的任务
ps 查看瞬时进程的动态,可以看到别的终端的任务
3. 完毕后台任务

kill
(1)通过jobs命令查看jobnum,然后执行 kill %jobnum
假设没有退出客户端界面,可以先通过 "jobs"命令查看程序是否在运行,此时只要序号没有PID号;
输入命令 "jobs -l" 会显示程序的PID号,然后通过"kill -9 PID"杀死程序;
输入命令 “jobs” 查看程序是否被杀死。
(2)通过ps命令查看进程号PID,然后执行 kill %PID
假设退出过客户端界面,输入 "jobs"命令查不到正在运行的程序;
输入 "ps ux"来查看所有程序的进程号PID,然后再通过 "kill -9 PID"杀死程序;
输入 "ps ux"来查看程序是否被杀死。
假设是前台进程的话,直接执行 Ctrl+c 就可以终止了
4. 前、后台任务切换

fg
将后台中的命令调至前台继续运行
假设后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。
Ctrl + z
将一个正在前台执行的命令放到后台,并且处于暂停状态
bg
将一个在后台暂停的命令,变成在后台继续执行
假设后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。
5. nohup.out维护

nohup.out会不时增加内容,因而就有了不停止效劳直接,清空nohup.out文件的方法。
两个可以不用停止WEB效劳就可以清空nohup.out的命令。
    第一种:
    1. cp /dev/null nohup.out
    复制代码
    第二种:
    1. cat /dev/null > nohup.out
    复制代码
6.  报错

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found

程序的编译器的版本是比较低,缺少GLIBCXX_3.4.22
(1)查找包含 libstdc++.so 的文件
  1. find / -name "libstdc++.so*"
复制代码
(2)查看其中高版本是否含有GLIBCXX_3.4.22
  1. strings /opt/conda/lib/libstdc++.so.6.0.29 | grep GLIBCXX
复制代码
(3)cd 到 /opt/conda/lib/文件夹中
(4)将高版本文件复制目的文件夹中
  1. cp libstdc++.so.6.0.29  /usr/lib/x86_64-linux-gnu/
  2. #挪动使用mv命令
  3. mv libstdc++.so.6.0.29  /usr/lib/x86_64-linux-gnu/
复制代码
(5)重新建立软连接
  1. cd /usr/lib/x86_64-linux-gnu/
  2. rm libstdc++.so.6 #删除
  3. ln libstdc++.so.6.0.29 libstdc++.so.6 #软连接
复制代码

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

一身傲气王
注册会员
主题 10
回复 18
粉丝 0
|网站地图
快速回复 返回顶部 返回列表