『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 6960|回复: 3

[基础教程] 关于开机启动py脚本

[复制链接]

12

主题

262

帖子

1388

积分

金牌会员

Rank: 6Rank: 6

积分
1388
金钱
1126
HASS币
0
发表于 2017-9-19 07:39:13 | 显示全部楼层 |阅读模式
本帖最后由 yegeziz 于 2017-10-7 08:59 编辑

  网上有很多方案,下面我列出我最顺手的防范.
  原理:通过在init.d下创建服务,通过服务来启动脚本
  1.创建服务.
sudo nano /etc/init.d/fan

创建服务文件"fan"
fan内容:
#!/bin/bash  
#!/bin/bash  
### BEGIN INIT INFO
# Provides:          any
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: auto-fan service
# Description:       auto-fan service daemon
### END INIT INFO
case "$1" in  
  start)  
        echo -n "Starting python: "  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
        date +"! %T %a %D : Starting python ." >>/var/log/python  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
                echo start  
        python  /home/pi/scp/fan.py & 
                #sh /root/finmonAgent/startpy  
        echo "Done."  
        echo ""  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
        date +"! %T %a %D : Finished." >>/var/log/python  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
        touch /var/lock/subsys/python  
        ;;  
  stop)  
        echo -n "Shutting Down python Listeners: "  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
        date +"! %T %a %D : Shutting Down python." >>/var/log/python  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
                echo "python"  
        killall -9 finmonAgent.py  
        echo "Done."  
        rm -f /var/lock/subsys/python        
        echo "Done."  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
        date +"! %T %a %D : Finished." >>/var/log/python  
        echo "---------------------------------------------------------------------------------" >>/var/log/python  
        ;;  
  *)  
  echo "Usage: python { start | stop | restart }"  
  exit 1  
esac  
exit 0  

ctrl+o保存
ctrl+x退出
2.重新载入服务
systemctl daemon-reload

启动服务
systemctl start fan

停止服务
systemctl stop fan

重启服务
systemctl restart fan

查询服务状态
systemctl status fan

设置开机启动
systemctl enable fan
2.2方案BBBBB
sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d homebridge defaults
sudo reboot重启就成功了。
[/hide]
3.顺便保存自动风扇的脚本
import RPi.GPIO as GPIO
import time
import commands

T_HIGH = 52
T_LOW = 40
fan_pin = 40
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(fan_pin, GPIO.OUT)

def get_gpu_temp():
    gpu_temp = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( '\'C', '' )
    return  float(gpu_temp)
GPIO.output(fan_pin, 1)#第一次通电,风扇默认开转.
while 1:
    gpu_temp_loop = get_gpu_temp()
    print 'CPU temp:', gpu_temp_loop,'C'
    if gpu_temp_loop > T_HIGH:
        GPIO.output(fan_pin, 1)
    elif gpu_temp_loop < T_LOW:
        GPIO.output(fan_pin, 0)
    time.sleep(5)


回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2017-9-19 20:18:59 | 显示全部楼层
现在一般用systemd方式启动了吧,还方便一些
回复

使用道具 举报

12

主题

262

帖子

1388

积分

金牌会员

Rank: 6Rank: 6

积分
1388
金钱
1126
HASS币
0
 楼主| 发表于 2017-9-19 22:01:30 | 显示全部楼层
Jones 发表于 2017-9-19 20:18
现在一般用systemd方式启动了吧,还方便一些

这....是真的不会,出个教程吧
回复

使用道具 举报

219

主题

1287

帖子

7945

积分

超级版主

Rank: 8Rank: 8

积分
7945
金钱
6628
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2017-10-2 15:17:55 来自手机 | 显示全部楼层
服务更方便,还能监控还能自动重启
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 20:43 , Processed in 0.196553 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表