欢迎光临散文网 会员登陆 & 注册

linux 进程和程序管理

2023-03-03 16:01 作者:芜湖小量化  | 我要投稿

后台执行程序
使用 &符号来实现在后台执行任务
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

linux 进程和程序管理的评论 (共 条)

分享到微博请遵守国家法律