Почему команда в /root/.bash_profile запускается дважды?

StackOverflow https://stackoverflow.com//questions/9715063

  •  14-12-2019
  •  | 
  •  

Вопрос

Вот мой /root/.bash_profile:

export DISPLAY=:42 && cd /home/df/SimulatedRpu-ex/bin && ./SimulatedRpu-V1 &

Когда я запускаю свой сервер, я запускаю ps aux | grep SimulatedRpu и вот результат:

root      2758  0.2  1.0  62316 20416 ?        Sl   14:35   0:00 ./SimulatedRpu-V1
root      3197  0.5  0.9  61428 19912 pts/0    Sl   14:35   0:00 ./SimulatedRpu-V1
root      3314  0.0  0.0   5112   716 pts/0    S+   14:35   0:00 grep SimulatedRpu

Итак, сообщение об ошибке печати программы о порте уже используется.Но почему команда в /root/.bash_profile начать дважды?Пожалуйста, помогите мне, спасибо! Кстати, я использую Redhat Enterprise 5.5.

Это было полезно?

Решение

Профиль читается каждый раз при входе в систему.Итак, просто войдя в систему, чтобы запустить ps aux | grep SimulatedRpu, вы запускаете профиль еще раз и таким образом запускаете новый процесс.

Вам следует поместить команду в сценарий инициализации вместо.

[РЕДАКТИРОВАТЬ] Вам также следует запустить Xvnc в том же сценарии — таким образом вы можете запускать и останавливать сервер отображения вместе с вашим приложением.

Другие советы

Попробуйте это как

if ! ps aux | grep '[S]imulateRpu'; then
    export DISPLAY=:42 && cd /home/df/SimulatedRpu-ex/bin && ./SimulatedRpu-V1 &
fi;

Таким образом, он сначала проверит, не запущено ли приложение.[] вокруг S предназначен для предотвращения поиска grep;)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top