rc.local, не работающий на запуске

Я создал сценарий для включения моего драйвера Bluetooth. Я затем использовал rc.local для выполнения его от запуска. Но, это не работает.

При выполнении команды systemctl status rc-local.service Я добираюсь:

Failed to issue method call: no such interface 'org.freedesktop.DBus.Properties' 
 on object at path /org/freedesktop/systemd1/unit/rc_2dlocal_2eservice

То, что я должен получить, является чем-то, что похоже на это:

rc-local.service - /etc/rc.local Compatibility
   Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled) 
Drop-In: /lib/systemd/system/rc-local.service.d
           └─debian.conf
   Active: active (running) since Mon 2018-04-02 10:39:44 -03; 1s ago
  Process: 2044 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
 Main PID: 2049 (svscanboot)
Tasks: 3
 Memory: 556.0K
CPU: 10ms
CGroup: /system.slice/rc-local.service

Все мои файлы являются исполняемым файлом (chmod 755 [filename]), и я проверил, что rc.local должен работать с sudo /etc/init.d/rc.local start и sudo /etc/rc.local start.

Есть ли что-нибудь, что я пропускаю?

Текущий rc.local файл:

#!/bin/sh -e
#
#
# 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.

/home/[redacted]/Desktop/rtl8723bs_bt/start_bt.sh

exit 0

Содержание от start_bt.sh

#!/bin/bash
#
# Shell script to install Bluetooth firmware and attach BT part of
# RTL8723BS
#
if [ "$1" = "" ]
then
    # Find the TTY attached to the BT device
    TTYSTRING=`dmesg -t | grep tty | grep MMIO | cut -b 14-18`
    TTY=`expr substr "$TTYSTRING" 1 5`

    if [ "$TTYSTRING" = "" ]
    then
    echo
    echo "No BT TTY device has been found"
    echo "Either this computer has no BT device that uses hciattach, or"
    echo "Your kernel does not have module 8250_dw configured."
    echo "Note: The configuration variable is CONFIG_SERIAL_8250_DW."
    echo
    exit 1
    fi
else
    # Use the TTY device mentioned oi the call
    TTY=$1
fi

TTY="/dev/$TTY"
echo "Using device $TTY for Bluetooth"

if [ ! -f /lib/firmware/rtl_bt/rtlbt_config ];
then
    mkdir -p /lib/firmware/rtl_bt/
    cp rtlbt_* /lib/firmware/rtl_bt/.
fi
./rtk_hciattach -n -s 115200 $TTY rtk_h5 > hciattach.txt 2>&1 &
6
задан 27 March 2019 в 15:02

2 ответа

Согласно Этому сообщению форума проблема могла быть с неудавшимися обновлениями дистрибутива. После преобразования моего физического диска к VM и обновлению его там он работал со сценарием тестирования: test.sh

echo run > run.txt

Я затем возвратился в своем исходном сценарии, и он все еще не работал. Слушая совет Wazoox:

Да, очевидно, "start_bt" файлы копии сценария вокруг и команды выполнения от определенного места, которое не является / (от которого/etc/rc.local выполняется). Необходимо, вероятно, добавить строку как это: CD / домой / [отредактировал]/Desktop/rtl8723bs_bt/право после эха строки "Используя $TTY устройства для Bluetooth"

Путем добавления CD / домой / [отредактировал]/Desktop/rtl8723bs_bt/к сценарию, решил проблему его не выполнение. Для решения этой проблемы на физическом компьютере, я должен буду переустановить Ubuntu, которая не была проблемой для меня.

2
ответ дан 23 November 2019 в 08:04

Я переписываю свой комментарий как ответ:

"start_bt" сценарий копирует файлы вокруг и команды выполнения от определенного места, которое не является / (от которого/etc/rc.local, работал). Необходимо добавить строку как это:

cd /home/[redacted]/Desktop/rtl8723bs_bt/

прямо после строки

echo "Using device $TTY for Bluetooth" 

Так, чтобы все команды были, работал в правильной папке.

1
ответ дан 23 November 2019 в 08:04

Другие вопросы по тегам:

Похожие вопросы: