Двоичный файл не работает при запуске, если он помещен в rc.local на RHEL6. Этот же двоичный файл выполняется при запуске вручную
У нас есть сервер RHEL6, на котором IPtables, NetworkManager и sestatus отключены. На этом же сервере мы создали двоичный файл с использованием кода C++.
Этот двоичный файл, когда он запускается вручную с правами root, работает нормально, но когда мы пытаемся запустить его при запуске через rc.local и cronjob (root, чтобы запускать каждые 30 минут), он не загружается в память сервера.
Мы попытались использовать скрипт оболочки для запуска двоичного файла при запуске, поместив двоичный путь в скрипт и добавив скрипт в rc.local и cronjob. Все еще нет Удачи.
После игры с некоторыми переменными среды, т. Е. Мы экспортируем их в скрипт перед запуском двоичного файла. Проблема cronjob была решена, но проблема запуска осталась прежней. Используемые переменные: "MANPATH, TERM, USER, LD_LIBRARY_PATH и PATH".
Пожалуйста, дайте мне знать, если кто-то сталкивался с такой проблемой и смог ее решить.
заранее спасибо
1 ответ
Используйте сценарий оболочки для запуска вашего двоичного файла. В начале сценария добавьте после #!/bin/bash
(в зависимости от вашей любимой оболочки):
source ~/.bash_profile
и / или
source ~/.bashrc
и / или
source ~/.profile
Когда cron запускает задание, используемая оболочка ничего не загружает. Вы должны сами инициировать окружение.