Запустить сценарий оболочки при запуске или загрузке

Исследуйте с помощью команды echo

Самый простой способ изучить, как все работает в bash с командой echo. В случае ~ используйте это:

$ echo ~
/home/rick
$ echo '~'
~
$ echo "~"
~
$ echo `~`
bash: /home/rick: Is a directory

Как вы можете видеть, когда вы указываете одиночную кавычку или используете двойные кавычки вокруг ~, она интерпретируется буквально как строка и не расширяется как переменная , Когда вы используете backticks (`), он выполняется как команда и генерирует сообщение об ошибке.

7
задан 29 February 2012 в 16:41

2 ответа

Вы можете запустить свой файл сценария в качестве загрузочного приложения (System - Preferences - Startup Applications в Ubuntu 10.04 LTS - не знаете, где эквивалент находится в 11.10).

Например, чтобы запустить inosync при загрузке, я добавил запись в Startup Applications с помощью

Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01 

Файл сценария bash inosync.sh должен быть включен для выполнения. Этого можно достичь с помощью sudo nautilus в терминале, перехода к файлу, щелчка правой кнопкой мыши и выбора «Свойства», перехода на вкладку «Разрешения» и проверки «Разрешить выполнение файла как программы».

3
ответ дан 25 May 2018 в 13:51
  • 1
    Приложения запуска запускаются при входе в систему, а не при загрузке системы. – Richard Holloway 1 March 2012 в 19:32
  • 2
    Спасибо за это разъяснение. Поскольку я всегда вхожу в систему, когда загружаю систему, Startup Applications отлично работает для моего приложения. – CentaurusA 4 March 2012 в 00:39

Правильное место для скриптов, которые нужно запустить при загрузке, - это вызвать скрипт из /etc/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.
9
ответ дан 25 May 2018 в 13:51
  • 1
    Выполняется ли она в корневом каталоге? Я имею в виду, если моя папка acpi_call находится в / home / anpel, мне придется скопировать ее в / root, чтобы cd / acpi_call попал в правильную папку, содержащую модули? – ppp 29 February 2012 в 18:51
  • 2
    Вы можете разместить сценарий в любом месте. почему бы вам просто не дать абсолютный каталог acpi_call. – Abhijeet 29 February 2012 в 20:56

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

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