利用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
随机推荐
- CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
- 详解redis数据结构之sds
- 通过vbs修改目录名称与快捷方式名称的实现代码
- oracle区管理和段空间管理详细介绍
- 使用JavaScript进行进制转换将字符串转换为十进制
- python使用rabbitmq实现网络爬虫示例
- mysqldump数据库备份参数详解
- php中的三元运算符使用说明
- node.js中的fs.symlinkSync方法使用说明
- JQuery Ajax 跨域访问的解决方案
- Linux下进行MYSQL编程时插入中文乱码的解决方案
- java中使用session监听实现同帐号登录限制、登录人数限制
- Ruby中的类Google Map/Reduce框架Skynet介绍
- IIS7 多域名绑定同一物理目录不同默认文档的实现方法
- Javascript学习笔记-详解in运算符
- java_object的简单使用详解
- Android中的AppWidget入门教程
- 用Python写的图片蜘蛛人代码
- PHP数组操作——获取数组最后一个值的方法
- c++类构造函数详解