我需要在Debian linux启动时将补丁ram应用到蓝牙芯片上。此修补程序使用/dev/mem
重置GPIO。这个更新的蓝牙初始化脚本包含在/etc/init.d/bluetooth
中。
我的bluetooth.service
是
[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
[Service]
Type=dbus
BusName=org.bluez
ExecStart=/etc/init.d/bluetooth start
User=root
NotifyAccess=main
[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service
然而,当我重新启动时,我收到错误消息“无法打开/ dev / mem:操作不被允许”
我知道/dev/mem
只能由root访问,但我不是以root身份运行我的init脚本吗?
答案 0 :(得分:-3)
它清楚地表明您无权运行脚本,您可以
您需要以root用户身份运行脚本
ExecStart=/etc/init.d/bluetooth start
此命令应以root用户身份运行
只需以root身份登录并重新运行脚本
系统启动时运行脚本
在/etc/init.d/目录中创建一个名为bluetooth.service的脚本(以root身份登录)
vi /etc/init.d/bluetooth.service
设置脚本的可执行权限:
chmod +x /etc/init.d/bluetooth.service
确保每次Debian Linux系统启动/启动时都会执行此脚本:
update-rc.d bluetooth.service defaults 100
其中,bluetooth.service:是您的启动脚本名称 defaults:参数'defaults'是指默认的运行级别,为2到5。 100:数字100表示脚本将在包含数字101的任何脚本之前执行。 只需运行命令
ls –l /etc/rc3.d/
此命令将软件链接到/etc/init.d并带有数字。
下次重启系统时,您将通过bluetooth.services执行自定义命令或脚本。 ÿ