/proc/sysrq-trigger文件的强大功能

/proc/sysrq-trigger 机制浅析 目录 1 系统请求开关 2 常用方法 3 说明文档 sysrq.txt(linux-2.6.38) 1 系统请求开关 怎么打开和关闭SysRq组合键 ? 为了安全起见,默认SysRq组合键是关闭的。 打开这个功能,运行: echo 1 > /proc/sys/kernel/sysrq 关闭这个功能: echo 0 > /proc/sys/kernel/sysrq 如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1。重新启动以后, 阅读详情
 

/proc/sysrq-trigger该文件能做些什么事情呢?

# 立即重新启动计算机 (Reboots the kernel without first unmounting file systems or syncing disks attached to the system)
echo "b" > /proc/sysrq-trigger

# 立即关闭计算机(shuts off the system)
echo "o" > /proc/sysrq-trigger

# 导出内存分配的信息 (可以用/var/log/message 查看)(Outputs memory statistics to the console)
echo "m" > /proc/sysrq-trigger

# 导出当前CPU寄存器信息和标志位的信息(Outputs all flags and registers to the console)
echo "p" > /proc/sysrq-trigger

# 导出线程状态信息 (Outputs a list of processes to the console)
echo "t" > /proc/sysrq-trigger

# 故意让系统崩溃 ( Crashes the system without first unmounting file systems or syncing disks attached to the system)
echo "c" > /proc/sysrq-trigger

# 立即重新挂载所有的文件系统 (Attempts to sync disks attached to the system)
echo "s" > /proc/sysrq-trigger

# 立即重新挂载所有的文件系统为只读 (Attempts to unmount and remount all file systems as read-only)
echo "u" > /proc/sysrq-trigger

呵呵,此外还有两个,类似于强制注销的功能

e
— Kills all processes except init using SIGTERM

i
— Kills all processes except init using SIGKILL


Linux内核SysRq机制:/proc/sysrq-trigger原理与故障排查实战 在Linux系统运维与内核调试领域,当系统陷入完全无响应的僵死状态时,常规命令往往失效。此时,内核提供了一套底层应急机制,允许绕过用户空间直接与内核对话,执行关键操作。其核心原理是通过特殊接口触发预定义的内核回调函数,这些函数执行路径极短、优先级极高,不依赖常规进程调度与文件系统。这项技术的核心价值在于为系统管理员提供了最后的“物理后门钥匙”,能在系统严重挂起时进行数据同步、信息获取和安全重启,是保障数据完整性与系统可恢复性的关键。其典型应用场景包括诊断内核软死锁、分析内存耗尽(OOM)、安全终止失控进程, 阅读详情

相关推荐

不止于‘魔术键’:深入理解/proc/sysrq-trigger与内核事件触发机制

本文深入解析Linux内核中的SysRq机制,特别是/proc/sysrq-trigger文件接口的工作原理与应用场景。通过剖析内核事件触发机制,帮助开发者掌握高级调试技巧,包括系统挂起诊断、内核开发调试等,同时提供安全配置建议和性能影响评估。

weixin_30616969的博客 320

linux下/proc/sysrq-trigger详解

/proc/sysrq-trigger详解 这是一组“魔术组合键”,只要内核没有被完全锁住,不管内核在做什么事情,使用这些组合键能即时打印出内核的信息。 使用SysRq组合键是了解系统目前运行情况的最佳方式。如果系统出现挂起的情况或在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用SysRq键是个比较好的方式。 怎么打开和关闭SysRq组合键? 为了安全起见,在红帽企业版Lin...

qq_42303254的博客 1万+

linux 自带强大调试工具sysRQ(高级片)

在linux系统下,我们可能会遇到系统某个命令hang住的情况,通常情况下,我们会查看/proc/pid/wchan文件,看看进程处于什么状况,然后进一步查看系统日志或者使用strace跟踪命令执行时的系统调用等等方法来分析问题。我们知道命令hang,一般问题都出在内核里, 如果我们能根据自己的需要打印内核的信息,可能会事半功倍,很快定位到问题。幸运的是linux真的有提供这样的方式,就是通过SysRq,今天在这里我就介绍一下。 1. SysRq的启用与关闭 要想启用SysRq, 需要在配置内核时设置.

mjfh095215的专栏 1592

echo “c“ > /proc/sysrq-trigger 让linux系统崩溃之后的恢复办法

故意让系统崩溃 echo "c" > /proc/sysrq-trigger 办法就是:重启 输入这个命令之后终端连接就会断开,无法输入命令,所以只能在后台重启 拓展: # 立即重新启动计算机 echo "b" > /proc/sysrq-trigger # 立即关闭计算机 echo "o" > /proc/sysrq-trigger # 导出内存分配的信息 (可以用/var/log/message 查看) echo "m" > /proc/sysrq-trigg..

lx555222的博客 1万+

Linux系统请求键SysRq的原理与应用

SysRq(System Request)是Linux内核提供的一种底层通信机制,允许用户通过特殊键位组合直接与内核交互。其核心原理在于建立独立于常规输入系统的通信通道,指令处理完全在内核空间完成,不受用户态进程状态影响。这种设计使SysRq成为系统故障诊断与恢复的终极工具,尤其适用于处理系统死锁、内存耗尽等极端情况。通过Alt+SysRq+命令键的组合,可以执行强制同步磁盘、安全重启系统、终止进程等关键操作。在生产环境中,合理配置SysRq权限并遵循REISUB标准流程,能有效保障系统稳定性与数据完整性。

weixin_42515392的博客 669

h5支付不能打开支付宝 ios_iOS支付宝H5支付无法返回APP解决方案

本文前大段在讲楼主是如何解决这个问题的,以及中间遇到的麻烦。赶时间的同学可以直接看最后的 最终解决方案。在讨论之前,我们先看看官方文档上的一句话:注意:在iOS系统中,唤起支付宝App支付完成后,不会自动回到浏览器或商户APP。用户可手工切回到浏览器或商户APP;支付宝H5收银台会自动跳转回商户return_url指定的页面。what? 官方直接跟我们说GG了?楼主不甘心,还是想尝试一下。借鉴之前...

weixin_39864101的博客 854

/proc/sysrq-trigger详解

/proc/sysrq-trigger详解 1. 立即重新启动计算机echo b > /proc/sysrq-trigger 2. 立即关闭计算机echo o > /proc/sysrq-trigger 3. 导出内存分配的信息 (可以用/var/log/message 查看)echo m > /proc/sysrq-trigger 4. 导出当前CPU寄存器信息和标志位的信息echo p > /proc/sysrq-trigger 5. 导出线程状态信息echo...

淮南子 1673

【python3.7】解决报错 error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++

解决pip安装py7zr遇到的报错问题。

水w的博客 3939

一条超级简单的故意让linux死机/宕机的命令

最近因为测试需要,需要观察机器在死机状态下其它外设的反应,学习到了一条超级简单的能让Linux瞬间死机的命令: echo c > /proc/sysrq-trigger 运行后效果如下: 可以看到,一旦运行后,系统立马死机。 原来,这是linux/proc/sysrq-trigger的强大机制: # 立即重新启动计算机 echo b> /proc/sy...

masterbee的博客 1万+

DGX Spark上PyTorch GPU环境配置实战:CUDA 13.0与ARM架构全流程

在深度学习中,CUDA作为GPU加速计算的底层基础,其版本与深度学习框架(如PyTorch)的匹配直接影响模型训练的效率与稳定性。GPU环境配置不仅涉及驱动、CUDA工具链与框架运行时的协同,还依赖于硬件架构与预构建包的兼容性。在AI开发机Ubuntu系统上,正确对齐CUDA版本、计算能力架构及安装源,是避免环境故障、发挥硬件算力的关键。无论是面向个人AI超算还是通用GPU服务器,掌握版本对齐、路径隔离与验证方法,都能大幅提升开发效率。本文以DGX Spark为例,详解从环境摸底到PyTorch GPU版本

weixin_29483277的博客 218

18、近端策略优化(PPO)算法详解

本文详细介绍了近端策略优化(PPO)算法的理论基础、算法流程、实现方法及实际应用。PPO作为当前最受欢迎的策略梯度算法之一,具有易于实现、计算成本低、样本效率高和性能优越等优点。文章对比了基于自适应KL惩罚和基于裁剪目标的两种PPO变体,重点解析了裁剪目标函数的设计原理及其在Actor-Critic框架下的实现方式,并通过Atari Pong游戏展示了完整的训练配置与流程。最后总结了PPO的优势、适用场景及未来发展方向,为强化学习研究者和实践者提供了全面的参考。

mongodb5scout的博客 177

/proc/sysrq-trigger文件的强大功能 shell

/proc/sysrq-trigger该文件能做些什么事情呢? # 立即重新启动计算机 (Reboots the kernel without first unmounting file systems or syncing disks attached to the system) echo "b" > /proc/sysrq-trigger # 立即关...

weixin_34246551的博客 281

【C2000系列DSP的Bootloader详解】如何利用脚本自动合并Bin文件

本文通过OutconvertBin.py实现了 C2000 Bootloader+UserApp 的「ELF 转 BIN+BIN 合并」全流程自动化,核心优势如下: 架构适配:严格遵循 C28x 16 位大端格式,生成的 BIN 文件可直接烧录; 自动化程度高:一键完成清理、转换、合并,无需手动执行多个命令; 可追溯性:生成 CRC32 校验值,便于验证文件完整性; 量产友好:合并后的merged.bin支持一次性烧录,提升量产效率。

昔时扬尘处 182

使用 /proc/sysrq-trigger 进行系统调试和故障排除

/proc/sysrq-trigger 是 Linux 内核提供的一个接口,它允许用户通过写入特定命令来触发系统请求(SysRq)功能。

lyndon 2579

【AI 编程工具】Codex配置部署指南

目录一、环境准备与基础安装1. 系统兼容性检查2. 前置依赖安装3. 安装方式选择二、API密钥配置与认证1. 获取API密钥2. 配置文件设置3. 临时配置方式三、沙盒环境配置与安全策略1. 沙盒模式选择2. 安全最佳实践四、高级功能配置1. 模型上下文协议(MCP)配置2. 模型版本切换3. 自定义网关配置五、常见问题排查1. 安装失败2. API调用失败3. 处理速度慢4. 配置文件不生效六、生产环境部署建议macOS/Linux:官方提供稳定支持,推荐使用原生环境Windows:官方标注为实验性支持

以实战经验介绍行业知识 2886

输入过欠压保护电路分析

输入过欠压保护电路仿真分析

HW-BASE的博客 6903

介绍/proc/sysrq-trigger的强大功能

介绍/proc/sysrq-trigger的强大功能 让大家了解一下,在linux里,可以利用/proc/sysrq-trigger做些事情 # 立即重新启动计算机 echo "b" > /proc/sysrq-trigger # 立即关闭计算机 echo "o" > /proc/sysrq-trigger # 导出内存分配的信息 (可以用/var/log/message

292

ASPICE学习笔记

ASPICE的全称是Automotive SPICE。

汽车电子软件领域知识分享 1355

/proc/sysrq-trigger

内核调试信息

qq_42931917的博客 692

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: Perf 简介
下一篇: JAVA应用程序如何打印出自己的回溯栈
gracioushe
博客等级 码龄25年 62粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值