Почему команда в /root/.bash_profile запускается дважды?
-
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;)