linux后台运行python程序

1. 后台运行代码命令

nohup python -u ***.py >***.log 2>&1 &
#生成后台任务[jobnum] PID
[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的命令。

  • 第一种:
    cp /dev/null nohup.out
  • 第二种:
    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 的文件

find / -name "libstdc++.so*"

(2)查看其中高版本是否含有GLIBCXX_3.4.22

strings /opt/conda/lib/libstdc++.so.6.0.29 | grep GLIBCXX

(3)cd 到 /opt/conda/lib/文件夹中

(4)将高版本文件复制目标文件夹中

cp libstdc++.so.6.0.29  /usr/lib/x86_64-linux-gnu/
#移动使用mv命令
mv libstdc++.so.6.0.29  /usr/lib/x86_64-linux-gnu/

(5)重新建立软连接

cd /usr/lib/x86_64-linux-gnu/
rm libstdc++.so.6 #删除
ln libstdc++.so.6.0.29 libstdc++.so.6 #软连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值