, как это предложил @VicVu Charles (или любой другой прокси-инструмент), является более простым способом. Но я хотел бы добавить, что вы можете сделать это и с вашим устройством, а не только с genymotion или другими эмуляторами. Процесс будет таким же:
Измените настройку wifi вашего устройства / эмулятора для использования ручного прокси. И затем установите имя прокси-сервера & amp; порт a. задайте имя хоста как ip вашей системы (получите ip вашего компьютера / mac с помощью ifconfig / ifconfig). b. установите номер порта genymotion (проверьте настройки прокси-сервера в charles)
PS: Ваше устройство / эмулятор ДОЛЖНО использовать тот же Wi-Fi, поскольку используемый вами ip скорее всего будет частным ip.
Запуск программы с '& amp;' не делает программу демонами, она просто работает в фоновом режиме. Для создания «истинного демона» ваша программа должна выполнить шаги, описанные здесь здесь .
Если ваша программа написана на C, вы можете вызвать функцию daemon (), которая сделает это для вы. Тогда вы можете запустить свою программу даже без '& amp;' в конце, и он будет запущен как демон.
Другим вариантом является вызов вашей программы с помощью демона , который также должен выполнять задание.
- name: Start daemon
shell: daemon -- myexeprogram arg1 arg2
Я нашел лучший способ, особенно потому, что я хотел, чтобы вывод был зарегистрирован, должен был использовать пакет «daemonize». Если вы находитесь в CentOS / Redhat, как показано ниже. Вероятно, для него есть и apt-пакет.
- name: yum install daemonize
yum:
name: daemonize
state: latest
- name: run in background, log errors and standout to file
shell: daemonize -e /var/log/myprocess.log -o /var/log/myprocess.log /opt/myscripts/myprocess.sh
Из краткого описания того, что вы хотите достичь, похоже, вам было бы лучше настроить ваш исполняемый файл как услугу (используя Upstart или аналогичную), а затем запустить / остановить ее по мере необходимости на основе других условий которые требуют его запуска (или не запускаются).
Попытка запускать это как процесс в противном случае будет повлечь за собой захват PID или аналогичный, чтобы вы могли попробовать и закрыть демона, который вы начали, когда вы необходимо, с почти такой же сложностью, как установка файла конфигурации init, и без тонкостей, которые такие системы, как Upstart, дают вам такие элементы управления, как start / stop.
Когда вы (или Ansible) выходите из системы, выходной сигнал по-прежнему будет отправлен на текущий процесс, хотя он работает в фоновом режиме.
Вы можете использовать nohup
, чтобы обойти это.
- name: Start daemon
shell: nohup myexeprogram arg1 arg2 &
For developing a new-style daemon, none of the initialization steps recommended for SysV daemons need to be implemented. New-style init systems such as systemd make all of them redundant. Moreover, since some of these steps interfere with process monitoring, file descriptor passing and other functionality of the init system, it is recommended not to execute them when run as new-style service.
– GnP 9 February 2018 в 17:06--
, POSIX, является разделителем между опциями i> команды, которые начинаются с тире-
и arguments i>, который может i > также содержат тире и могут, таким образом, путать варианты-синтаксический анализ ... Например, чтобы безопасно перечислить файл, вы должны сделатьls -- $filename
- иначе ваша команда может потерпеть неудачу, если имя самого файла начинается с тире. – Mikhail T. 14 August 2018 в 19:21