команда, не работающая в rc.local, но работы в терминале

Мой весь 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.
cd ~/xcape && ./xcape -e 'Control_L=Escape'
exit 0

Это, как предполагается, делает мою клавишу Caps Lock (который установлен на контроль, из-под Которого выходят), становятся клавишей выхода при нажатии отдельно, и быть ctrl при нажатии и содержании.

Команда в rc.local файле хорошо работает, когда я делаю это на терминале, но когда я загружаю свой компьютер, я должен выполнить команду вручную, потому что rc.local файл не выполнял команду..., или это перестало работать.

0
задан 29 October 2014 в 02:54

2 ответа

Избегайте ~ в сценарии, используйте свой полный путь к каталогу. Мало того, что другой интерпретатор сценария работает (тире вместо удара), который не понимает ~ соглашение, сценарий работает как корень, поэтому даже если бы ~ был понят, это был бы неправильный корневой каталог.

3
ответ дан 6 October 2019 в 22:01

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

необходимо измениться ~/xcape с /home/yourUser/xcape.

для проверки Вашего /etc/rc.local сценарий, необходимо использовать эту команду:

 sudo service rc.local start
2
ответ дан 6 October 2019 в 22:01

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

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