Запускать программу при загрузке

Вообще-то, ls сообщает все, что говорит ему ядро: оно не делает ничего разного относительно размера в зависимости от того, является ли файл каталогом). А Linux сообщает логический размер. Но логический размер каталога - не очень интересное свойство: он зависит от формата файловой системы.

Тип файловой системы по умолчанию в большинстве дистрибутивов Linux - ext4, и, вероятно, именно его вы используете. Ext4 выделяет целые блоки под каталоги и управляет пространством внутри этих блоков по своему усмотрению. Он даже не освобождает блоки, если каталог уменьшается (dir1 будет иметь 9 блоков, даже если вы удалите все файлы в нем). На вопрос о размере файла, который является каталогом, ext4 возвращает размер, выделенный для каталога, а это всегда целое число блоков.

Различные типы файловых систем ведут себя по-разному. Например, в Btrfs, экспериментально, размер каталога может быть любым кратным 2.

1
23.05.2017, 10:49
3 ответа

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

#!/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
0
28.01.2020, 00:55

Простое решение для запуска программы при загрузке — создать для нее запись в 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в вашей системе.

0
28.01.2020, 00:55

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

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

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

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

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

0
28.01.2020, 00:55

Теги

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