自启动

rasp
进入启动目录


ls /home/pi/.config/autostart   #树莓派的自启动目录,可以通过制作desktop文件来实现自启动
cd /home/pi/.config/autostart
cd ~/.config/autostart/


nano df.desktop

运行python程序


[Desktop Entry]
Name=example
Comment=My Python Program
Exec=python /var/www/html/shell/Switch.py
Type=Application
Terminal=true

直接运行可执行程序

chmod 777 /home/pi/frp_0.20.0_linux_arm/start	#必须添加可执行的权限
[Desktop Entry]
Name=frp
Comment=df
Exec=/home/pi/frp_0.20.0_linux_arm/start
Type=Application
Terminal=true

or

[Desktop Entry]
Name=airplay
Comment=df
Exec=/home/pi/shairplay-master/run.sh
Type=Application
Terminal=true
  • 每次重启或者远程桌面登陆都会执行,如果是后台持续运行的程序,远程桌面登陆会导致程序重复运行
  • 每个desktop文件都会作为独立的进程运行
  • 运行shell文件需要设置可执行权限
  • 路径应该是完整路径,而不应该是简化路径(比如,应该是“/home/pi/shairplay-master/run.sh”,而不应该是“~/shairplay-master/run.sh”)

linux

chmod +x /etc/rc.d/rc.local		#有些版本需要给local设置权限
sudo vi /etc/rc.local	#编写shell脚本


/etc/rc.local		#测试脚本的运行


/etc/rc.d/rc.local


echo >>~/df.df


#可以加载多个程序
. ~/frp_0.20.0_linux_amd64/start &	
. ~/shell1 &
. ~/shell2 &
  • local文件会在系统启动时运行,编写脚本的时候,对于持续运行的程序需要添加“&”,以免堵塞系统
  • 在rasp里也可以使用这种方法进行自启动

shell
start

dir=~/frp_0.20.0_linux_arm/
${dir}frpc -c ${dir}frpc.ini
dir=~/frp_0.20.0_linux_amd64/
${dir}frps -c ${dir}frps.ini

通用方案

 sudo nano /etc/rc.local
 
#!/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.

#可以加载多个程序
dir=/home/pi/frp_0.20.0_linux_arm/
${dir}frpc -c ${dir}frpc.ini &
date >> /home/pi/autorun_log

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0
  • 路径应该是完整路径,而不应该是简化路径(比如,应该是“/home/pi/shairplay-master/run.sh”,而不应该是“~/shairplay-master/run.sh”)
  • “rc.local”的自启动是linux通用的

你可能感兴趣的:(Linux)