利用kernel提供的接口打印进程号(pid)
c文件printPid.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/list.h>
static __init int printPid(void) //安装模块函数
{
struct task_struct *task,*p;
struct list_head *ps;
int count=0;
printk("begin.\n");
task=&init_task;
list_for_each(ps,&task->tasks)
{
p=list_entry(ps,struct task_struct,tasks);
count++;
printk("%d\t%s\n",p->pid,p->comm);
}
printk("Process counts:%d\n",count);
return 0;
}
static __exit void exitPid(void) //卸载函数
{
printk("exit!\n");
}
module_init(printPid); //实现的函数必须放入其中
module_exit(exitPid);
make后会生成pid.ko文件。
然后用这几个命令:
#安装模块
sudo insmod pid
#显示日志信息
dmesg
#显示挂载的挂载的所有模块
lsmod
#卸载
sudo rmmod pid
相关推荐
-
利用kernel提供的接口打印进程号(pid)
c文件printPid.c 复制代码 代码如下: #include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/list.h> static __init int printPid(void) //安装模块函数{ struct task_struct *task,*p; s
-
linux根据进程号PID查找启动程序的全路径
工作环境中遇到网络不正常,检测是某服务器异常往外发送数据包,使用netstat命令查看,发现有程序.IptabLex的这个进程状态为异常连接.无法有效清除,因此想知道是哪个目录的此程序处于僵死状态. [root@edu-web1 /]# netstat –anp | less 出问题时进程的状态为: [root@edu-web1 /] ps x 找到某进程启动路径的方法是: 1.我们可以从ps命令中得到僵死进程的PID,如上例中23347 2.进入/proc目录下以该PID命名的目录中 3.输入
-
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
首先引入JavaScript API文件 <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script> 此API提供的接口共有6个,geoip_country_code(){国家代码},geoip_country_ name(){国家名称},geoip_city() {城市名称},geoip_region(){地区代码},geoip_latit
-
利用python中的matplotlib打印混淆矩阵实例
前面说过混淆矩阵是我们在处理分类问题时,很重要的指标,那么如何更好的把混淆矩阵给打印出来呢,直接做表或者是前端可视化,小编曾经就尝试过用前端(D5)做出来,然后截图,显得不那么好看.. 代码: import itertools import matplotlib.pyplot as plt import numpy as np def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cma
-
JS利用window.print()实现网页打印功能
目录 前言 一.print()方法 二.打印样式 1.使用打印样式表 2.使用媒介查询 3.内联样式使用media属性 4.在css中使用@import引入打印样式表 三.打印指定区域部分内容 1.方法一 2.方法二 3.方法三 四.强制插入分页 五.设置打印布局(横向.纵向.边距) 六.去除浏览器默认页眉页脚 七.打印方法封装 前言 print作为浏览已经比较成熟的技术可以经常被用来打印页面的部分内容,我们可以在MDN上查看到相关的简单介绍. 一.print()方法 print() 方法用于打
-
SpringBoot利用@Retryable注解实现接口重试
目录 前言 1.@Retryable是什么 2.使用步骤 (1) POM依赖 (2)启用@Retryable (3)在方法上添加@Retryable (4)@Recover (5)注意事项 3.总结 前言 在实际工作中,重处理是一个非常常见的场景,比如: 发送消息失败. 调用远程服务失败. 争抢锁失败. 这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码.然而
-
通过MyBatis读取数据库数据并提供rest接口访问
1 mysql 创建数据库脚本 -- phpMyAdmin SQL Dump -- version 4.2.11 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: 2016-08-02 18:13:50 -- 服务器版本: 5.6.21 -- PHP Version: 5.6.3 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = &q
-
Linux下查看端口占用进程号,程序名的方法
linux下查看端口占用情况: 1. 查看哪个进程占用了819端口: case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # lsof -i:859 运行后的结果: COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME java 24907 root 31u IPv4 248905027 TCP *:859 (LISTEN) 由以上我们知道了859端口被进程号为24907的进程占用了, 是个java进程. 2. 查看进程
-
JAVA利用HttpClient进行HTTPS接口调用的方法
本文介绍了JAVA利用HttpClient进行HTTPS接口调用的方法,分享给大家,具体如下: 1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程. import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManage
-
python监控进程状态,记录重启时间及进程号的实例
本脚本为本人在性能测试过程中编写,用于对进程状态的监控,也可以用于日常的监控,适用性一般,扩展性还行 # -*- coding: UTF-8 -*- # author=baird_xiang import os import time import re import copy nginxRestart_num= -1 nginxReload_num= -1 logSender_num= -1 es_num= -1 nginxParent_pid=[] nginxChild_pid=[] log
随机推荐
- lua文件操作详解
- Asp.Net平台下的图片在线裁剪功能的实现代码(源码打包)
- ASP.NET中实现导出ppt文件数据的实例分享
- ASP.NET MVC4中使用Html.DropDownListFor的方法示例
- C#使用浏览按钮获得文件路径和文件夹路径的方法
- C++实现基于控制台界面的吃豆子游戏
- Android实现的仿淘宝购物车demo示例
- Shell脚本实现非法IP登陆自动报警
- 用sql语句实现分离和附加数据库的方法
- Jquery时间验证和转换工具小例子
- js原生态函数中使用jQuery中的 $(this)无效的解决方法
- JQUBAR1.1 jQuery 柱状图插件发布
- JQuery下拉框应用示例介绍
- 利用Thumbnailator轻松实现图片缩放、旋转与加水印
- Java解析Excel文件并把数据存入数据库
- PHP之sprintf函数用法详解
- Android如何实现接收和发送短信
- C语言实现K-Means算法
- Android日期选择器实现年月日三级联动
- PHP实现的操作数组类库定义与用法示例
