linux 进程和程序管理
后台执行程序
使用 &符号来实现在后台执行任务
tar -zcvf lala.gz.tar lala & 把lala目录在后台打包 返回[1]6232 [1]:第几个后台进程 6232:命令执行创建的process id
tar -zcvf lala.gz.tar lala > /tem/tar.log 2>&1 & 使用&依然会输出任务信息可能和当前任务输出冲突 此时可以把后台程序输出信息重定向到log文件中
tar -zcvf lala.gz.tar lala:命令部分
> /tem/tar.log:重定向输出信息 此处定向到/tem/tar.log
2>&1:重定向错误信息 把错误信息也重定向到/tem/tar.log
&: 后台执行
后台暂停程序
nano test.txt 创建txt文件
^T^Z 把nano切换到后台 output:[1]+ 已停止 nano test.txt
使用jobs查看后台程序
jobs 显示所有后台程序
jobs -l 显示所有后台程序的pid
jobs -r 显示所有运行中后台程序
jobs -s 显示所有已停止后台程序
使用fg命令把后台程序切换到前台执行
fg 将默认的后台程序切换到前台
fg 1 把后台第1个进程切换到前台
启动后台暂停程序
wget是一个自由下载工具
wget 下载链接 就可以下载链接的文件
wget https://dldir1.qq.com/qqfile/qq/QQNT/4b2e3220/linuxqq_3.1.0-9572_amd64.deb > wget.log 2>&1 开始下载qq linux版本
^Z 把下载任务切换到后台此时任务会暂停
jobs 查看任务状态
bg 1 重新启动下载任务
jobs 此时可以发现任务在后台运行
删除后台程序
kill 命令的选项
kill -l 列出kill命令可用的信号
kill -1 重新读取一次参数配置
kill -2 关闭运行中的程序1
kill -9 强制关闭一个程序
kill -15 正常方式关闭程序,默认值
kill -9 % 1 强制关闭第一个后台进程 一定要加% 否则关闭的是pid=1的程序,导致系统崩溃
程序后台脱机运行
对于一些长时间进行的任务,可以切换到系统后台运行
screen -S wget 新建一个名为screen的环境,会进入screen环境
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.2-live-server-amd64.iso 在screen环境中创建下载任务
按住ctrl+A 之后同时按d 退出screen环境返回终端环境
此时可以关闭终端
再次打开终端 screen -r wget 重新连接上screen环境可以发现下载仍在进行
ctrl+a+d 返回终端环境
screen -S wget2 -X quit 删除 wget2会话
进程管理
ps命令可以用于显示进程
-A/-e 显示所有进程
-a 显示和终端无关的进程
-l 显示完整进程信息
pstree -p 显示进程树
top top命令可以动态可刷新的查看进程信息
使用top命令可以查看程序的资源占用率
top -p 4152 查看pid为4152进程的资源占用 此处为java
关闭进程
ps -el | grep nano output:0 S 1000 24952 24143 0 80 0 - 4612 wait_w pts/1 00:00:00 nano
kill -9 24952 杀死此nano进程 output:已杀死
调整进程优先级
linux系统的最终优先级(PRI)是由内核优先级和NI值两部分组成
nice -n 10 nano ty.txt & 使用nice为新创建的进程修改NI值 NI值修改等于10
renice -5 pid 使用renice修改进程pid的NI NI值修改后等于5
系统资源的查看
free 使用 free命令查看内存的使用
uname 查看系统和内核相关信息 -s内核名称 -r内核版本 -m硬件信息 -a所有信息
uptime 查看系统启动信息和工作负载
单次计划管理
at 选项 时间参数
-m 任务完成后通知用户
-l 列出at调度的任务
-d 取消at调度中的任务
-c 显示某项任务的实际命令内容
格式: 12:15 / 12:15 2023-3-12 / 12:15 3days 三天后的12:15执行
at 12:15 使用at创建定时任务
lala@lala-ROG-Zephyrus-G14-GA401QM-GA401QM:~$ at 14:05
warning: commands will be executed using /bin/sh
at Fri Mar 3 14:05:00 2023
at> touch 1405.txt
at> nano 1409.txt<EOT>
job 2 at Fri Mar 3 14:05:00 2023
tty 查看当前登陆用户的终端名称
at -l 查看at命令设置的任务内容
at -d 3 删除任务号为3的任务
循环任务管理
可以使用crontap命令编辑任务列表
crontab -e 可以进入编辑循环的任务
crontab -r 清空任务列表
ps -el | grep systemd 查看systemd进程 pid=1!!!!
systemctl:system主命令
systemctl常用指令如下:
status 查看系统服务状态
list-units 列出所有运行中的服务
list-unit-files 列出所有可用服务
start 启动服务
stop 关闭服务
restart 重启服务
enable 开机自启服务
disable 开机禁用服务
kill 杀死服务
查看服务信息
sudo systemctl status cron 查看cron服务信息
ps -el | grep cron
sudo systemctl stop cron 关闭服务
sudo systemctl start cron 启动服务
ps -el | grep cron output中pid发生了变化
服务配置文件说明 以service和target文件最常见
cd /lib/systemd/system
cat cron.service 查看配置文件内容
此service 分为三部分
unit 服务的单元信息以及和该服务相关的设置
service 单元类型 服务启动的脚本位置,参数,关闭,停止方式等信息
install 执行target所包含的各类服务
systemctl设置开机启动服务
1.在/etc目录下创建开机启动的脚本
2.创建启动服务
3.创建启动项
sudo nano pystart.sh
#创建 pystart.sh
# !/bin/sh
cd /home/lala/pycharm/bin
chmod +x pycharm.sh
cd /lib/systemd/system
sudo nano pystart.service
# 创建pystart.service
[Unit]
Description=pystart
After=network.target
[Service]
ExecStart=/etc/pystart.sh
IgnoreSIGPIPE=false
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 创建启动项
sudo systemctl enable pystart.service
ls | grep pystart

