簡體   English   中英

無法以root用戶身份使用systemctl運行腳本

[英]Cannot run a script as root with systemctl

我需要在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用戶身份運行初始化腳本嗎?

它清楚地表明您沒有運行腳本的權限,您可以需要以root用戶身份運行腳本,例如ExecStart=/etc/init.d/bluetooth start該命令應以root用戶身份運行

只需以root用戶身份登錄並重新運行腳本

系統啟動時運行腳本

  1. 在/etc/init.d/目錄中創建一個名為bluetooth.service的腳本(以root用戶身份登錄) vi /etc/init.d/bluetooth.service

  2. 設置腳本的可執行權限: chmod +x /etc/init.d/bluetooth.service

  3. 確保每次Debian Linux系統啟動/啟動時執行此腳本:

    update-rc.d bluetooth.service defaults 100

其中,bluetooth.service:是啟動腳本名稱的默認值:參數'defaults'是指默認的運行級別,范圍是2到5。100:數字100表示​​腳本將在包含數字101的任何腳本之前執行。只需運行命令

ls –l /etc/rc3.d/

該命令將使用數字軟鏈接到/etc/init.d。

下次重新啟動系統時,您的自定義命令或腳本將通過bluetooth.services執行。 ÿ

  1. 在系統啟動時執行shell腳本在/etc/init.d/目錄中打開文件bluetooth.service

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM