Intereting Posts
Как удалить строку, если она длиннее XY? Перенаправление с вложенными командами gksudo не кэширует учетные данные Solaris SMF vs Linux Upstart Как открыть сессию bash incognito? Сделайте панель шириной 80 (или около того) шириной Использовать mdadm в качестве обходного пути из-за отсутствия поддержки badblocks в btrfs Почему bash не сохраняет команды, начинающиеся с пробелов? Было бы возможно, чтобы сетевая ссылка не была задействована при загрузке модуля ядра? автозаполненные названные каталоги В чем разница между размером файла между символьными и жесткими ссылками? Как я должен обрабатывать shebang при написании моей собственной оболочки? Если вы измените переменную среды в другой оболочке, она изменится или останется неизменной в других оболочках? Создайте две последовательности чисел, разделенные символом "|" Недокументированный формат записей журнала аудита Linux

Сделать запуск программы при загрузке

У меня есть программа на C ++, которую я хочу, чтобы она запускалась во время загрузки в дистрибутиве yocto.

Я попробовал добавить простой скрипт на /etc/init.d/ под названием test.sh, в котором у меня только есть:

echo "start my program" ProgramName 

с «ProgramName», моя программа запускается, когда я запускаю оболочку. Если я выполню этот новый скрипт, он запустит мою программу.

Я добавил его как символическую ссылку на папку rc5. Я попытался перезагрузить, но ничего не происходит. Нужно ли мне что-то делать?

Как я могу заставить это работать с рецептом. В конце концов, я хотел бы, чтобы это автоматизировалось.

Пожалуйста, проверьте этот Q / A для аналогичного обсуждения. И добавьте заголовок в свой скрипт:

 #!/bin/sh ### BEGIN INIT INFO # Provides: # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Sample_GT02 daemon startup script # Description: Sample Server for GT02 class ### END INIT INFO 

В рецепте добавьте:

  • INITSCRIPT_NAME и добавьте имя файла сценария инициализации, который необходимо установить на etc / init.d.
  • INITSCRIPT_PARAMS и укажите уровень запуска вашего скрипта и начальные уровни, на которых должен запускаться скрипт.

Например, вы можете ссылаться на файл в «poky / meta / recipes-connectivity / connman / connman.inc». Вы увидите следующий пример использования.

  INITSCRIPT_NAME = "connman" INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ." 

В приведенном выше скрипте сценария snippet, установленном в ect / init.d, и сценарий имеет уровень запуска 05, сценарий запускается в начальных уровнях 2, 3 и 5 и останавливается на уровнях 0, 1 и 6.

Простым решением для запуска программы при загрузке является создание для нее записи crontab следующим образом:

 @reboot /path/to/program 

Обычно это подходит для программ, которые не являются системными демонами.

Тег @reboot гарантирует, что программа запускается при загрузке системы и поддерживается в большинстве реализаций cron:

 @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @midnight (same as @daily) @hourly Run once an hour, "0 * * * *". 

Для получения дополнительной информации см. man 5 crontab в вашей системе.