树莓派:最好的安排
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派:最好的安排相关的知识,希望对你有一定的参考价值。
利用cron来开机启动
利用/etc/init.d开机启动
在树莓派下的/etc/init.d文件夹下有很多脚本,比如我们已经了解了的cron。这个cron脚本把cron这个守护进程包装成了一个服务,定义了它在启动、重启和终止时的具体行为。这样,用户在启用相应的服务时,就不需要进行太复杂的设置。当服务终止时,操作系统也能根据脚本的定义,自动地回收相关资源。用户还能把重要的服务设置成开机启动,省了手动开启的麻烦。因此,我们在/etc/init.d中内看到很多默默工作的服务,如ssh、bluetooth、rsync等。
服务脚本遵循特定的格式:
#!/bin/sh # Start/stop the cron daemon. # ### BEGIN INIT INFO # Provides: cron # Required-Start: $remote_fs $syslog $time # Required-Stop: $remote_fs $syslog $time # Should-Start: $network $named slapd autofs ypbind nscd nslcd winbind # Should-Stop: $network $named slapd autofs ypbind nscd nslcd winbind # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Regular background program processing daemon # Description: cron is a standard UNIX program that runs user-specified # programs at periodic scheduled times. vixie cron adds a # number of features to the basic UNIX cron, including better # security and more powerful configuration options. ### END INIT INFO # 省略部分 case "$1" in start) log_daemon_msg "Starting periodic command scheduler" "cron" start_daemon -p $PIDFILE $DAEMON $EXTRA_OPTS log_end_msg $? ;; stop) log_daemon_msg "Stopping periodic command scheduler" "cron" killproc -p $PIDFILE $DAEMON RETVAL=$? [ $RETVAL -eq 0 ] && [ -e "$PIDFILE" ] && rm -f $PIDFILE log_end_msg $RETVAL ;; restart) log_daemon_msg "Restarting periodic command scheduler" "cron" $0 stop $0 start ;; reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron" # cron reloads automatically log_end_msg 0 ;; status) status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $? ;; *) log_action_msg "Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}" exit 2 ;; esac exit 0
/etc/init.d/myscript还不能随机启动。Linux在开机启动时,真正检查的是/etc/rcN.d文件夹,执行其中的脚本。这里的N代表了运行级别。比如说在运行级别2时,Linux会检查/etc/rc2.d文件夹,执行其中的脚本。Unix系统可以在不同运行模式下工作,如单用户模式、多用户模式,每种模式就称为一个运行级别。大多数UNIX系统遵照:
运行级别:
0 停机,关机
1 单用户,无网络连接,不运行守护进程,不允许非超级用户登录
2 多用户,无网络连接,不运行守护进程
3 多用户,正常启动系统
4 用户自定义
5 多用户,带图形界面
6 重启
我们需要把/etc/init.d中的服务复制到或者建立软连接到/etc/rcN.d,才能服务在该运行级别的开机启动。不过,我们可以利用chkconfig命令更便利地进行:
chkconfig --add myscript # 建立脚本软链接到默认级别 chkconfig --level 35 --add myscript # 建立脚本软链接到3和5级别 chkconfig --del myscript # 删除软链接
利用/etc/rc.local开机启动
树莓派官网上给出了修改/etc/rc.local的方法,来在树莓派开机时执行用户自定义的任务。比如在该文件中执行date命令:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # time date > /tmp/rc.local.log exit 0
但这种启动方式不推荐。/etc/rc.local是在系统初始化的末尾执行的一个脚本。如果把太多的任务加入到这个脚本中,不但会拖慢开机的速度,还会造成管理上的混乱。因此,/etc/rc.local往往只用于修改一些在启动过程需要设定的参数,而不涉及具体的任务启动。如果想随开机启动某些服务,应该避免使用/etc/rc.local。
以上是关于树莓派:最好的安排的主要内容,如果未能解决你的问题,请参考以下文章
我正在使用我在网上找到的一些代码来运行树莓派温度传感器,但我不是最好的编码器