Linux下如何在程序中关机

买了树莓派为了防止板子温度过高,想写个开机自启程序,当CPU温度超过85℃时自动关机

2个回答

在论坛上找到一个范例,希望有帮助:

#!/bin/sh
#  This script reads the Broadcom SoC temperature value and shuts down if it 
#  exceeds a particular value.
#  80ºC is the maximum allowed for a Raspberry Pi.

# Get the reading from the sensor and strip the non-number parts
SENSOR="`/opt/vc/bin/vcgencmd measure_temp | cut -d "=" -f2 | cut -d "'" -f1`"
# -gt only deals with whole numbers, so round it.
TEMP="`/usr/bin/printf "%.0f\n" ${SENSOR}`"
# How hot will we allow the SoC to get?
MAX="78"

if [ "${TEMP}" -gt "${MAX}" ] ; then
 # This will be mailed to root if called from cron
 echo "${TEMP}ºC is too hot!"
 # Send a message to syslog
 /usr/bin/logger "Shutting down due to SoC temp ${TEMP}."
 # Halt the box
 /sbin/shutdown -h now
 else
  exit 0
fi

可以调用shutdown命令来关机

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

linux能不能通过编程(如c语言)延迟关机?

功能需求中需要在服务器关机或者重启时将程序当前处理的数据输出来,但是,有时数据会非常多,需要三四分钟才可以输出完毕,而关机时间内没办法输出完毕。求问大神有什么解决办法没有,通过编程延迟关机,或者通过更改系统的一些配置,使收到关机信号时,延时几分钟再关闭。

怎么才能保持程序始终处于运行状态?怎么防止用户通过关机从而关闭运行的程序?

怎么才能保持程序始终处于运行状态?怎么防止用户通过关机从而关闭运行的程序?

一个小的Linux程序,一运行电脑就自动关机。(要求两个进程轮流打印1.2.3.4....)

#include <stdio.h> #include <signal.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> void f_sigact(int num) { static int f = 2; // sleep(1); printf("I am father.This is %d\n",f); f += 2; } void c_sigact(int num) { int static c = 1; // sleep(1); printf("I am child.This is %d\n",c); c+=2; } int main() { pid_t fpid,cpid; struct sigaction fact,cact; fact.sa_handler = f_sigact; cact.sa_handler = c_sigact; // sigemptyset(&fact.sa_mask); // sigaddset(&fact.sa_mask,SIGUSR2); fact.sa_flags = 0; // sigaction(SIGUSR1,&fact,NULL); // sigemptyset(&cact.sa_mask); sigaddset(&cact.sa_mask,SIGUSR1); cact.sa_flags = 0; sigaction(SIGUSR2,&cact,NULL); fpid = fork(); if(fpid < 0){ perror("fork"); exit(1); } int m = 5; while(1){ if(fpid > 0){ kill(fpid,SIGUSR2); // sleep(1); } else{ cpid = getppid(); kill(cpid,SIGUSR1); // sleep(1); } sleep(3); } return 0; }

嵌入式linux 多线程卡死

在一台跑2.6内核的嵌入式linux设备上(可视对讲门口机),大概有十几个进程,其中自己的应用程序占用1个hicore进程,里面大概跑了四五十个线程,设备有gui界面、可以进行sip对讲、人脸识别等。 前几天碰到一个很奇怪的现象,在待机界面下或是进行蓝牙开门时(或是一些其他操作,总之没有规律)设备会卡死,期间界面动不了、键盘无响应。大概卡个10分钟左右自动恢复。。在卡住的时候发现cpu使用率还是正常待机时70%左右,但是现象是其他线程都不工作了,该打印的不打印,只有ls、top等系统命令是可以正常使用。 这个问题也是很难复现,几十台设备几天才会有1台出现,不知道如何排查。。 不知道大家有没有好的办法支支招,能有效缩小问题点范围? 设备还有8M剩余内存可在一台跑2.6内核的嵌入式linux设备上(可视对讲门口机),大概有十几个进程,其中自己的应用程序占用1个hicore进程,里面大概跑了四五十个线程,设备有gui界面、可以进行sip对讲、人脸识别等。 前几天碰到一个很奇怪的现象,在待机界面下或是进行蓝牙开门时(或是一些其他操作,总之没有规律)设备会卡死,期间界面动不了、键盘无响应。大概卡个10分钟左右自动恢复。。在卡住的时候发现cpu使用率还是正常待机时70%左右,但是现象是其他线程都不工作了,该打印的不打印,只有ls、top等系统命令是可以正常使用。 这个问题也是很难复现,几十台设备几天才会有1台出现,不知道如何排查。。 不知道大家有没有好的办法支支招,能有效缩小问题点范围? 设备还有8M剩余内存可用,跑GDB貌似也不够了用,跑GDB貌似也不够了

linux服务器要关机维护,但我有个任务计算了六天还没出结果,能否让任务暂停,服务器重启之后继续计算?请大神指点。

问题如上所述:linux服务器要关机维护,但我有个任务计算了六天还没出结果,能否让任务暂停,服务器重启之后继续计算?请大神指点。

C++实现计算机自动关机的问题

运行定时关机时总显示计划的关闭被取消是什么意思,怎么解决?谢谢 ``` #include <cstdlib> #include <Conio.h> #include <iostream> //#include<stdlib.h> #include<string.h> using namespace std; int main() { int i; cout<<"1、关机"<<endl <<"2、重启"<<endl <<"3、注销"<<endl <<"4、休眠"<<endl <<"5、锁定"<<endl <<"6、取消"<<endl; cin>>i; switch(i) { case 1:{ int j; cout<<"1、关机"<<endl <<"2、定时关机"<<endl <<"3、取消定时关机"<<endl <<"4、取消"<<endl; cin>>j; switch(j) { case 1: system("shutdown -s -t 0"); break; case 2:{ int t; cin>>t; char b[50]; char shut[]="shutdown -s -t "; printf("%s\n",itoa(t,b,10));//把10进制的125转成字符并输出。 system(strcat(shut,b)); //将右部分字符串连接到左部分,并放入到system(""); } case 3: system("shutdown -a"); break; case 4: return 0; default: return 0; } break; } case 2: system("shutdown -r"); break; case 3: system("shutdown -l"); break; case 4: system("shutdown -h"); break; case 5: system("rundll32.exe user32.dll,LockWorkStation "); break; case 6: return 0; default: return 0; } return 0; system("pause"); } ```

linux下定时任务执行脚本不执行(ESB自动重启脚本)

![图片说明](https://img-ask.csdn.net/upload/201903/19/1552974770_644010.png)脚本如图所示,每分钟执行自动启动ESB,现在打印的日志执行了,脚本没执行。但是手动执行restart.sh脚本是可以成功的。ESB版本:8.0.0.2 /etc/profile如下: ![图片说明](https://img-ask.csdn.net/upload/201903/19/1552974897_595536.png)![图片说明](https://img-ask.csdn.net/upload/201903/19/1552974901_967642.png) .bash_profile如下:![图片说明](https://img-ask.csdn.net/upload/201903/19/1552974964_650536.png) . /opt/ibm/mqsi/8.0.0.2/bin/mqsiprofile如下: #!/bin/bash # Licensed Materials - Property of IBM # 5724-A82 # (c) Copyright IBM Corp. 2012. # All Rights Reserved # US Government Users Restricted Rights - use, # duplication or disclosure restricted by GSA # ADP Schedule Contract with IBM Corp. # Level: S800-FP02 # Check that this script was sourced and not executed. if test "`basename $0 2>/dev/null`" = "mqsiprofile" then echo mqsiprofile must be run in the context of this shell, using the \"source\" or dot \".\" notation, not simply run as a script. echo Try using \". $0\" or \"source $0\" from the current context. exit 1 fi if [ -n "${PROSPECTIVE_MQSI_FILEPATH+MQSI_PROFILE_NOT_SET}" ]; then echo mqsiprofile repetition disallowed return 1 fi PROSPECTIVE_MQSI_FILEPATH=/opt/ibm/mqsi/8.0.0.2 export PROSPECTIVE_MQSI_FILEPATH MQSI_FILEPATH=${PROSPECTIVE_MQSI_FILEPATH} export MQSI_FILEPATH MQSI_WORKPATH=/var/mqsi export MQSI_WORKPATH MQSI_VERSION=8.0.0.2 MQSI_VERSION_V=8 MQSI_VERSION_R=0 MQSI_VERSION_M=0 MQSI_VERSION_F=2 MQSI_FAD=6 export MQSI_VERSION MQSI_VERSION_V MQSI_VERSION_R MQSI_VERSION_M MQSI_VERSION_F MQSI_FAD MQSI_PROCESSOR_ARCHITECTURE=64 export MQSI_PROCESSOR_ARCHITECTURE # If there is a primary MQ install, ensure that its environement is consistent if [ -r ${MQ_INSTALLATION_PATH:-/usr}/bin/setmqenv ]; then . ${MQ_INSTALLATION_PATH:-/usr}/bin/setmqenv -s elif [ -r /usr/bin/setmqenv ]; then . /usr/bin/setmqenv -s elif [ -r /opt/mqm/bin/dspmqver ]; then MQ_JAVA_INSTALL_PATH=/opt/mqm/java MQ_INSTALLATION_PATH=/opt/mqm export MQ_JAVA_INSTALL_PATH export MQ_INSTALLATION_PATH fi MQSI_REGISTRY=${MQSI_WORKPATH} export MQSI_REGISTRY PATH=${MQSI_FILEPATH}/bin:${MQSI_FILEPATH}/isadc${PATH:+":"${PATH}} export PATH MQSI_LILPATH=${MQSI_FILEPATH}/lil:${MQSI_FILEPATH}/jplugin${MQSI_LILPATH:+":"${MQSI_LILPATH}} export MQSI_LILPATH MQSI_SECURITY_PROVIDER_PATH=${MQSI_FILEPATH}/SecurityProviders${MQSI_SECURITY_PROVIDER_PATH:+":"${MQSI_SECURITY_PROVIDER_PATH}} export MQSI_SECURITY_PROVIDER_PATH MQSI_EXMLTCONFIGPATH=${MQSI_FILEPATH}/exmltConfig export MQSI_EXMLTCONFIGPATH LD_LIBRARY_PATH=${MQSI_FILEPATH}/xml4c/lib:${MQSI_FILEPATH}/lib:${MQSI_FILEPATH}/bin:${MQSI_FILEPATH}/ODBC/V6.0/lib:${MQSI_FILEPATH}/xlxpc/lib:${MQSI_FILEPATH}/dfdlc/lib${LD_LIBRARY_PATH:+":"${LD_LIBRARY_PATH}} export LD_LIBRARY_PATH ICU_DATA=${MQSI_FILEPATH}/xml4c/data${ICU_DATA:+":"${ICU_DATA}} export ICU_DATA NLSPATH=${MQSI_FILEPATH}/messages/%L/%N:${MQSI_FILEPATH}/messages/En_US/%N${NLSPATH:+":"${NLSPATH}} export NLSPATH MQSI_JARPATH=${MQSI_FILEPATH}/classes:${MQSI_FILEPATH}/messages${MQSI_JARPATH:+":"${MQSI_JARPATH}} export MQSI_JARPATH MQSI_CATALINA_HOME=${MQSI_FILEPATH}/catalina export MQSI_CATALINA_HOME MQSI_WEBADMIN_HOME=${MQSI_FILEPATH}/webadmin export MQSI_WEBADMIN_HOME CLASSPATH=${MQSI_FILEPATH}/messages:${MQSI_FILEPATH}/classes:${MQSI_FILEPATH}/classes/ConfigManagerProxy.jar:${MQSI_FILEPATH}/classes/brokerutil.jar${CLASSPATH:+":"${CLASSPATH}}:${MQSI_WORKPATH}/common/wsrr export CLASSPATH IBM_JVM_SR_SIGNUM=64 export IBM_JVM_SR_SIGNUM MIBDIRS=${MQSI_FILEPATH}/snmp-mib${MIBDIRS:+":"${MIBDIRS}} export MIBDIRS for SCRIPT in ${MQSI_WORKPATH}/common/profiles/*.sh; do if [ -r "${SCRIPT}" ]; then if [ "${SCRIPT}" != "${MQSI_WORKPATH}/common/profiles/IE02.sh" ]; then . ${SCRIPT} fi fi done # JRE path overrides in custom profiles are not allowed from 7.0 onwards MQSI_JREPATH=${MQSI_FILEPATH}/jre16 export MQSI_JREPATH PATH=${MQSI_JREPATH}/bin${PATH:+":"${PATH}} export PATH LD_LIBRARY_PATH=${MQSI_JREPATH}/lib/amd64:${MQSI_JREPATH}/lib/amd64/classic${LD_LIBRARY_PATH:+":"${LD_LIBRARY_PATH}} export LD_LIBRARY_PATH echo echo MQSI $MQSI_VERSION echo $MQSI_FILEPATH echo 请各位大佬帮忙看看问题出在哪里,急需帮助!!!

强制关闭Vmware主程序后,再打开Vmware Workstations,正在运行的虚拟机看不见了

服务器上运行着多台虚拟机,其中一台虚拟机在关机的时候卡住了,于是就把Vmware Workstations的主程序强制关闭了。再次打开Vmware Workstations发现服务器上其他正常运行的虚拟机在主程序界面看不见了,并且在Vm主程序显示关闭虚拟机电源的任务一直是正在执行。求助有没有能结束关闭虚拟机任务的方法,或者是能在Vm主程序看到其他正常运行虚拟机的办法![图片说明](https://img-ask.csdn.net/upload/201910/21/1571649575_711762.png)

linux系统下,做的视频记录仪,写入固态硬盘的数据量比实际的小很多的问题

楼主是个linux新菜鸟,目前在做一个linux系统下的视频记录仪,记录H264的视频,简单说就是从网络读取视频流写入固态硬盘,固态硬盘挂载到linux系统的/MNT下,现在有个问题就是屏幕打印实际读取的数据量例如为12345678字节,如果正常接收关闭信号,关闭文件退出系统则固态硬盘里的数据量与实际相差无几,但一旦是直接关电那么固态硬盘内数据就少很多,最多少过50几秒的视频数据,平均码流是1.5mBPS 程序简单历程就是 recv从网络读取 buf【2048】 fwrite讲buf写入已挂载的硬盘里打开的文件 有关机信号 关闭文件,umount,退出系统

局域网内Ubuntu服务器时常不能连接 ip显示为0.0.0.0

局域网有一台自用的Ubuntu 18.04桌面版作为服务器,以ssh方式管理,用的时候开机,不用就关机 发现在用putty成功两次连接后必定连不上,进到路由器管理界面发现ip为0.0.0.0, 可本来这台机子有保留ip,而换个保留ip然后重启就能恢复正常,只是会重新出现putty首连的安全警告,用两次后又要换ip ssh就是 apt安装后把startserver加到开机启动里,没有额外配置 linux网络在还有图形界面时配置过dns 一直不太清楚是ssh设置的问题还是linux网络设置有问题,请各位前辈赐教

ubuntu下使用eclipse自动关闭

按alt + /出现代码提示或者写代码时自动提示都会导致eclipse自动退出。一出现代码提示就退出,实在太快了,没法截图说明。求救

在android 中能不能实现 定时开机呢?

最近想搞个定时开关机的小程序。。。。。。 但是定时开机 能不能实现 ,需要学习到哪个层次的东西呢?

C#写的桌面应用程序独占屏幕,现在实现开机自启动,怎么实现一开机就显示我的应用,而不是有一定的延迟

用C# wpf写的桌面应用程序需要一开机就独占全屏,现在实现开机自启动,但是启动过程中会出现操作系统的界面,我必须让用户无法有进入操作系统的机会,怎么实现一开机就显示我的应用,而不是有一定的延迟,或者屏蔽操作系统桌面,直到我的应用自启动,谢谢各位大侠

请问win和linux关闭硬盘的原理是什么

windows是可以关闭硬盘的。 比如休眠和关机的时候。 那关闭的硬盘的原理是什么呢? 我想用程序实现这个功能。但不知道原理 (找不到合适的分类了,就发这了)

Java 串口通信程序崩溃 高分求帮忙

系统提示异常如下: # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0d4c5cf6, pid=6752, tid=8468 # # Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86) # Problematic frame: # C [rxtxSerial.dll+0x5cf6] # # An error report file with more information is saved as: # D:\apache-tomcat-7.0.82\bin\hs_err_pid6752.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # 可以正常通信只有在调用关闭的时候。出现系统崩溃。 环境是在windows JDK1.6 下开发。 RXTX 调用 serialPort.close();这个方法就出异常。求各位大神帮帮忙。

服务器死机了,远程桌面怎么关闭

在本机远程连接服务器(windows server 2008),出现了如下错误: DllHost (216,G,0) 由于 Beta 网站模式设置 0x800000,ESENT 中已启用 Beta 功能 EseDiskFlushConsistency。 在网上找了原因,发现是服务器死机,然后尝试去远程让服务器关机 先ping了服务器ip地址,发现能ping通,但是在cmd命令下运行关机命令显示无法联通, 请问怎么解决?

reboot后,Docker容器可以自启动,但是容器内的服务如何自启动?

sudo docker restart [容器ID] 容器重启后,容器内服务没法自启动(Dockerfile里是配置了服务自启动的,启动镜像的时候容器内服务是可以自启动的,但是容器重启后服务没法起来) 尝试写服务启动脚本,然后在rc.local里配置,服务还是启动不了

virsh shutdown 的内部代码是如何执行的?

如题。 libvirt中的virsh管理工具,在执行shutdown后,源代码内部发什么了什么?程序是如何执行的

deepin锁屏后密码验证一直提示密码错误

今天deepin升级了一下,然后锁屏之后输入正确密码就提示密码错误。重启电脑输入密码可以进入系统,再次锁屏之后又登不进去。有知道怎么解决的吗

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问