Выполните sudo (или запуск) сценарий Python от крона на Raspberry Pi?

Демон, которого Вы описываете, мог использовать inotify.

Но возможно использование find и wc -l уже было бы достаточно быстро?

Я только запустил один быстрый тест, но существует значительная разница между time ls -lR /mm/|grep -c jpg (real 0m2.168s) и time find /mm -type f -name \*jpg|wc -l (real 0m0.397s) в моей системе. Оба возврата приблизительно 42 000 файлов, таким образом, различие на больших каталогах, вероятно, было бы больше.

(Я выполнял обе команды несколько раз для исключения эффектов кэширования диска.)

2
15.07.2013, 22:40
2 ответа

Отбросьте sudo его не нужное начиная с его выполнения как корень и sudo привычкой по умолчанию, выполненной без tty.

Можно сказать sudo работать без tty путем выполнения visudo и комментирующий requiretty:

#Default requiretty

ОБРАТИТЕ ВНИМАНИЕ, что это действительно имеет недостатки безопасности, посмотрите здесь

2
27.01.2020, 22:14

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

python /path/to/lightpaint-FF.py &

Если файл не существует, попытайтесь создать его с содержанием

#!/bin/sh
python /path/to/lightpaint-FF.py &
exit 0

Несколько встроенных дистрибутивов не поддерживают /etc/rc.local. Если тот, который Вы используете, не делает, говорит нам, каково это.


Если необходимо контролировать программу и повторно запустить ее, если она умирает, можно сделать это через init. То, как сделать это, зависит, на котором init Ваше распределение использует.

  • Для традиционного init добавьте строку к /etc/inittab. BusyBox может поддерживать inittab, но это - дополнительная функция, которая должна быть выбрана во время компиляции.

    lp:2345:respawn:/usr/in/python /path/to/lightpaint-FF.py
    
  • Для выскочки запишите новомодное задание] (http://upstart.ubuntu.com/getting-started.html).

0
27.01.2020, 22:14

Теги

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