当前位置: 首页 > news >正文

Linux 内核线程启动以及内核调用应用层程序

#include <linux/kthread.h> //内核线程头文件
 

static task_struct *test_task;

test_task = kthread_run(thread_function, NULL, "test_thread_name");

if(IS_ERR(test_task))
{

        pr_err("test_thread_name create fail\n");

}

static int thread_function(void *arg)
{
    char *envp[3];
    char *argv[3];
    int ret= 0;

    argv[0] = "/bin/sh";
    argv[1] = "/etc/test_shell.sh";
    argv[2] = NULL;

    envp[0] = "HOME=/";
    envp[1] = "PATH=/sbin:/bin:/usr/bin";
    envp[2] = NULL;
    
     ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);

     pr_info("ret is %d\n", ret);

    return 0;
}

其他:

线程停止函数:kthread_stop(test_task)

唤醒线程函数:wake_up_progress(test_task)

http://www.lryc.cn/news/124753.html

相关文章:

  • React+Typescript清理项目环境
  • 【linux学习】linux的模块机制
  • 用 oneAPI 实现 AI 欺诈检测:一款智能图像识别工具
  • 云计算的发展前景怎么样
  • opencv实战项目 手势识别-手势音量控制(opencv)
  • Mac下编译32位Qt
  • 企业数据库遭到360后缀勒索病毒攻击,360勒索病毒解密
  • C++11时间日期库chrono的使用
  • 每天一道leetcode:1466. 重新规划路线(图论中等广度优先遍历)
  • Mysql—修改用户密码(重置密码)
  • ECE585 Tomasulo算法:C++ Tomasulo算法模拟器
  • Qt中在QLabel上画点,重写QLabel类
  • ssm+vue小型企业办公自动化系统源码和论文PPT
  • C++ STL priority_queue
  • [PyTorch][chapter 50][创建自己的数据集 2]
  • SQL-每日一题【1341. 电影评分】
  • 基于DBN的伪测量配电网状态估计,DBN的详细原理
  • Python运算符全解析:技巧与案例探究
  • NPCon:AI模型技术与应用峰会北京站 (参会感受)
  • 为什么爬虫要用高匿代理IP?高匿代理IP有什么优点
  • 【JavaWeb】MySQL约束、事务、多表查询
  • 【并发编程】自研数据同步工具优化:创建线程池多线程异步去分页调用其他服务接口获取海量数据
  • 七、dokcer-compose部署springboot的jar
  • k8s 使用 containerd 运行时配置 http 私服
  • 【新品发布】ChatWork企业知识库系统源码
  • 疫情打卡 vue+springboot疾病防控管理系统java jsp源代码
  • python --连接websocket
  • 数据库内日期类型数据大于小于条件查找注意事项
  • 网易有道押宝大模型,打响智能硬件突围战
  • KAFKA第二课之生产者(面试重点)