任务7:在Linux系统中后台运行应用程序,并打印日志
任务要点:程序后台运行,进程管理
步骤1:sleep.py文件
在/home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹中创建一个sleep.py文件,该文件需要完成以下功能:程序一直运行每10秒输出当前时间
import time
while True:
cur_time = time.localtime(time.time())
print(time.strftime("%Y-%m-%d %H:%M:%S",cur_time))
time.sleep(10)
运行python3 sleep.py 命令会打印时间:
步骤2:学习nohup后台执行的方法
(1)https://blog.csdn.net/a736933735/article/details/89577557 (2)http://ipcmen.com/jobs 使用nohup 会进入后台运行程序,可以通过cat 查看对应的日志文件:
andy@ubuntu:~/coggle/andyguo$ nohup python3 -u sleep.py > file.txt &
[1] 4625
andy@ubuntu:~/coggle/andyguo$ nohup: ignoring input and redirecting stderr to stdout
cat file.txt
2021-11-20 17:13:02
2021-11-20 17:13:12
2021-11-20 17:13:22
2021-11-20 17:13:32
2021-11-20 17:13:42
2021-11-20 17:13:52
然后可以kill 掉刚才的进程了,可以通过ps -u 查看当前所有进程的信息(报错经常pid、占用cpu,占用内存等信息),比如下面知道进程pid为4625后直接kill 掉:
andy@ubuntu:~/coggle/andyguo$ ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
andy 1716 0.0 0.3 172652 6336 tty2 Ssl+ 17:04 0:00 /usr/lib/gdm3/gdm-x-session --run-scr
andy 1720 0.7 3.2 287404 65240 tty2 Sl+ 17:04 0:04 /usr/lib/xorg/Xorg vt2 -displayfd 3 -
andy 1769 0.0 0.7 199236 15284 tty2 Sl+ 17:04 0:00 /usr/libexec/gnome-session-binary --s
andy 1850 0.0 0.0 0 0 tty2 Z+ 17:04 0:00 [fcitx] <defunct>
andy 2254 0.0 0.2 19512 4888 pts/0 Ss 17:05 0:00 bash
andy 4625 0.0 0.3 24032 7416 pts/0 S 17:13 0:00 python3 -u sleep.py
andy 4631 0.0 0.1 20132 3268 pts/0 R+ 17:14 0:00 ps -u
andy@ubuntu:~/coggle/andyguo$ kill 4625
步骤3:学习tmux的使用
将步骤1的程序进行后台运行,并将输出结果写入到txt文件。
tmux new -s mysession 创建一个新窗口,之后命令和步骤2一样。
不过我报错如下了,说缺少或不适合终端,此处挖坑,可以参考Stack Overflow的讨论。
andy@ubuntu:~/coggle/andyguo$ tmux new -s mysession
open terminal failed: missing or unsuitable terminal: xterm-256color
|