Вообще-то, ls
сообщает все, что говорит ему ядро: оно не делает ничего разного относительно размера в зависимости от того, является ли файл каталогом). А Linux сообщает логический размер. Но логический размер каталога - не очень интересное свойство: он зависит от формата файловой системы.
Тип файловой системы по умолчанию в большинстве дистрибутивов Linux - ext4, и, вероятно, именно его вы используете. Ext4 выделяет целые блоки под каталоги и управляет пространством внутри этих блоков по своему усмотрению. Он даже не освобождает блоки, если каталог уменьшается (dir1
будет иметь 9 блоков, даже если вы удалите все файлы в нем). На вопрос о размере файла, который является каталогом, ext4 возвращает размер, выделенный для каталога, а это всегда целое число блоков.
Различные типы файловых систем ведут себя по-разному. Например, в Btrfs, экспериментально, размер каталога может быть любым кратным 2.
Пожалуйста, проверьте этот вопрос/ответ для подобного обсуждения. И добавьте заголовок в свой сценарий:
#!/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
Простое решение для запуска программы при загрузке — создать для нее запись в 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
в вашей системе.
В свой рецепт добавьте:
Например, вы можете сослаться на файл в "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.