利用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
随机推荐
- 基于ES6作用域和解构赋值详解
- 建立自由的会计日期的报表--1.2.创建让用户选择日期窗体
- jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
- 架设自己的FTP服务器 Serv-U详细配置图文教程[推荐]
- cakephp打印sql语句的方法
- 使用Python中的greenlet包实现并发编程的入门教程
- python查看FTP是否能连接成功的方法
- Struts2中实现web应用的初始化实例详解
- 详解JavaScript中的blink()方法的使用
- MySql用DATE_FORMAT截取DateTime字段的日期值
- 详解nodejs爬虫程序解决gbk等中文编码问题
- C++基础入门教程(九):函数指针之回调
- Shell脚本实现ftok函数
- JavaScript参数个数可变的函数举例说明
- Spring MVC 基于URL的映射规则(注解版)
- 网页效率之DNS查找和并行下载
- C#用递归算法解决经典背包问题
- Android 开发 使用WebUploader解决安卓微信浏览器上传图片中遇到的bug
- PHP与JavaScript针对Cookie的读写、交互操作方法详解
- 移动端android上line-height不居中的问题的解决
