文章目录

  • 一、后台运行代码命令
  • 二、查看后台命令
  • 三、结束后台任务
  • 1、通过jobs命令查看jobnum,然后执行 kill %jobnum
  • 2、通过ps命令查看进程号PID,然后执行 kill %PID
  • 四、前、后台任务切换
  • 1、fg
  • 2、Ctrl + z
  • 3、bg
  • 五、nohup.out维护
  • 六、报错



一、后台运行代码命令

nohup python -u ***.py >***.log 2>&1 &

#生成后台任务[jobnum] PID
[1] 25282

nohup 加在命令的最前面,表示不挂断的运行命令

-u 不缓存,立即加载终端数据

.log 终端输出的数据,不添加将自动生成nohup.out文件

2>&1 将错误内容重定向输入到标准输出中去

**&**加载命令的最后面,表示这个命令放在后台执行

二、查看后台命令

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

三、结束后台任务

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 就可以终止了

四、前、后台任务切换

1、fg

将后台中的命令调至前台继续运行
如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

2、Ctrl + z

将一个正在前台执行的命令放到后台,并且处于暂停状态

3、bg

将一个在后台暂停的命令,变成在后台继续执行
如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。

五、nohup.out维护

nohup.out会一直增加内容,因此就有了不停止服务直接,清空nohup.out文件的方法。
两个可以不用停止WEB服务就可以清空nohup.out的命令。

  • 第一种
cp /dev/null nohup.out
  • 第二种
cat /dev/null > nohup.out

六、报错

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 #软连接