多次尝试在rc.local中添加自定义shell 脚本无果之后,终于使用crontab测试成功,树莓派可以使用crontab添加开机启动;

具体操作如下:
加入脚本为test.sh

  1. #!/bin/bash
  2. echo "Hello"

1、赋予脚本可执行权限

  1. chmod 775 test.sh

2、编辑crontab,输入下面命令来编辑crontab

  1. crontab -e

第一次使用可能需要选择编辑器,选择趁手的就行,为选择vim;然后添加启动脚本

  1. @reboot cd /home/pi/Program/shell && ./test.sh

3、可以重启测试了


1. 首先找个路径创建一个简单的自启脚本文件:

  1. sudo nano my_script.sh

然后输入:

  1. #!/bin/sh
  2. touch /home/pi/test.txt
  3. chmod 777 /home/pi/test.txt
  4. echo "Hello Pi" >> /home/pi/test.txt

该shell 代码中,指定运行方式为sh,在pi 目录创建一个test.txt 文件,并添加权限
最后将Hello Pi 语句定向到该txt 文件中
保存,退出。
然后给该my_script.sh 文件添加执行权限:

  1. chmod 777 my_script.sh

在此也可先测试一下脚本运行情况:

  1. ./my_script.sh

然后可以发现/home/pi 目录下多了test.txt 文件

2. 然后将该文件设置为开机自启:

首先打开rc.local 文件

  1. sudo nano /etc/rc.local

然后在exit 0 前面添加如下代码:

  1. su pi -c "exec /home/pi/my_script.sh"

该代码将会切换为pi 用户执行文件,且执行完后切换为原来用户
保存即可。
随后开机便会发现/home/pi 目录下多了一个test.txt 文件
若是要开机自启其他类型的文件,例如/home/pi 下的abc.py 文件,则先进入rc.local 文件:

  1. sudo nano /etc/rc.local

然后添加:

  1. sudo python /home/pi/abc.py &

最后的& 代表在后台运行

方法二:

1. 进入/home/pi/.config 路径

  1. cd /home/pi/.config

2. 找到autostart 路径,没有就创建一个

  1. mkdir autostart

3. 然后进入autostart 路径

  1. cd autostart

4. 在autostart 中创建一个.desktop 尾缀文件,例如test.desktop

  1. touch test.desktop

5. 该文件中输入:

  1. [Desktop Entry]
  2. Name=test
  3. Comment=Python Program
  4. Exec=python /home/pi/test.py
  5. Icon=/home/pi/python_games/4row_black.png
  6. Terminal=false
  7. MultipleArgs=false
  8. Type=Application
  9. Categories=Application;Development;
  10. StartupNotify=true

其中,NameCommentExecIcon 分别代表启动项的名称备注图标(随便找个png图片)、调用的指令(就是令你要自启的那个文件启动的shell 语句),例如sudo python /home/pi/test.py

6. 最后重启即可观察到该程序自启了。


DEMO

树莓派开机启动chrome浏览器

  1. cd /home/pi/.config/autostart
  2. mkdir chrome.desktop

编辑chrome.desktop

  1. [Desktop Entry]
  2. Name = chrome atuostart
  3. Comment = start chrome and open url using settings done in LxInput
  4. NoDisplay = true
  5. Exec = chromium-browser --app="http://127.0.0.1:5000" --kiosk --incognito --disable-pinch --overscroll-history-navigation=0

Chrome 浏览器启动参数

序号 参数 说明
1 —allow-outdated-plugins 不停用过期的插件。
2 —allow-running-insecure-content 默认情况下,https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。
3 —allow-scripting-gallery 允许拓展脚本在官方应用中心生效。默认情况下,出于安全因素考虑这些脚本都会被阻止。
4 —disable-accelerated-video 停用 GPU 加速视频。
5 —disable-dart 停用 Dart。
6 —disable-desktop-notifications 禁用桌面通知,在 Windows 中桌面通知默认是启用的。
7 —disable-extensions 禁用拓展。
8 —disable-file-system 停用 FileSystem API。
9 —disable-preconnect 停用 TCP/IP 预连接。
10 —disable-remote-fonts 关闭远程字体支持。SVG 中字体不受此参数影响。
11 —disable-speech-input 停用语音输入。
12 —disable-web-security 不遵守同源策略。
13 —disk-cache-dir 将缓存设置在给定的路径。
14 —disk-cache-size 设置缓存大小上限,以字节为单位。
15 —dns-prefetch-disable 停用DNS预读。
16 —enable-print-preview 启用打印预览。
17 —extensions-update-frequency 设定拓展自动更新频率,以秒为单位。
18 —incognito 让浏览器直接以隐身模式启动。
19 —keep-alive-for-test 最后一个标签关闭后仍保持浏览器进程。(某种意义上可以提高热启动速度,不过你最好得有充足的内存)
20 —kiosk 启用kiosk模式。(一种类似于全屏的浏览模式)
21 —lang 使用指定的语言。
22 —no-displaying-insecure-content 默认情况下,https 页面允许从 http 链接引用图片/字体/框架。添加这一参数会阻止这些内容。
23 —no-first-run 跳过 Chromium 首次运行检查。
24 —no-referrers 不发送 Http-Referer 头。
25 —no-sandbox 彻底停用沙箱。
26 —no-startup-window 启动时不建立窗口。
27 —proxy-pac-url 使用给定 URL 的 pac 代理脚本。(也可以使用本地文件,如 —proxy-pac-url=”file:\\c:\proxy.pac”)
28 —proxy-server 使用给定的代理服务器,这个参数只对 http 和 https 有效。(例如 —proxy-server=127.0.0.1:8087 )
29 —single-process 以单进程模式运行 Chromium。(启动时浏览器会给出不安全警告)
30 —start-maximized 启动时最大化。
31 —user-agent 使用给定的 User-Agent 字符串 参数:—user-data-dir=UserDataDir
用途:自订使用者帐户资料夹(如:–user-data-dir=”D:\temp\Chrome User Data”)
参数:—process-per-tab
用途:每个分页使用单独进程
参数:—process-per-site
用途:每个站点使用单独进程
参数:—in-process-plugins
用途:插件不启用单独进程 参数:—disable-popup-blocking
用途:禁用弹出拦截
参数:—disable-javascript
用途:禁用JavaScript
参数:—disable-java
用途:禁用Java
参数:—disable-plugins
用途:禁用插件
参数:–disable-images
用途:禁用图像
参数:—omnibox-popup-count=”num”
用途:将网址列弹出的提示选单数量改为num个
参数:—enable-vertical-tabs
用途:调整chrome游览器标签存放在左边,非顶部