Я сделал 3 кода на Python. Я использую Raspberry Piподпроцесс VS функция VS Параллельные программы в/etc/profile
- Код 1 - Печать штрих-кодов на кнопку печати
- Code 2 - Посылает штрихкод на сервер
- код 3 - Работает в фоновом режиме, чтобы записать данные в случае сбоя в сети и отправить данные после входа в Интернет.
Примечание: Все эти коды работают в while(True)
цикле
Теперь я должен запускать все эти 3 программы параллельно друг другу. Я прочитал около 3 вариантов у меня есть
подпроцесс - Где я импортировать коды питона в один код, используя подпроцесс() и запускать их
Использование/и т.д./профиль - Где я положил в следующем линия в конце sudo nano /etc/profile
sudo python3 (link to code1) & sudo python3 (link to code3)
Это прекрасно работает ... хотя я в настоящее время пойманы в бесконечном цикле, а затем и не чувствую себя очень комфортно с ним.
Определяющие функции - Где я определяю две программы как функции в самом большом из трех кодов и запускаю их с очень быстрыми интервалами.
Теперь все эти 3 дают мне результаты с небольшими ошибками здесь и там время от времени. Но я хочу знать ... что является ЛУЧШИМ возможным и наиболее эффективным способом запуска нескольких программ параллельно друг другу
Что делать, если я запускаю эти 3 программы, используя определения функций ИЛИ используя потоки ... И моя четвертая программа, которая просто записывает время и перезапускает rpi, как только она набирает 3 часа, я запускаю эту программу с использованием/etc/profile. AS, мне нужно запустить всю эту операцию при загрузке RPi. – shantanu
Используйте superisord для обработки всех процессов. Это дает вам все, что вам нужно. Вы можете запустить его при загрузке (http://serverfault.com/q/96499/98756). Но не используйте '/ etc/profile' - это для чего-то другого. И ваше приложение не будет перезагружаться, если вы не входите в систему - например, после перезапуска из-за сбоя питания. – warvariuc
Мне нужно, чтобы мои приложения перезапускались после загрузки rpi. Думаю, мне нужно сделать фиджинг с аутологией? – shantanu