Я новичок в Linux, и в настоящее время я переключаю свой сервер с Windows на Centos 6.3. Я написал небольшой UDP-сервер. Сервер UDP был написан на C #, и теперь я адаптировал его для работы с Linux с использованием Mono. Он работает нормально, когда я запускаю его таким образом:
/opt/mono/bin/mono /root/MySoft/UDPServer.exe "$@"
Как мне запустить его автоматически - когда компьютерная статистика? (в терминах Windows: windows-service)
Я попытался создать файл запуска и поместить его в /etc/init.d
но это не сработало
Мое решение goto для подобных вещей - установить и использовать supervisord.
Supervisord - это диспетчер процессов Python, который очень просто установить из репозитория пакетов вашего дистрибутива и легко настроить. Вы просто добавляете простой файл конфигурации для своего исполняемого файла, а супервизор заботится о его запуске, захвате вывода и (необязательно) его повторном запуске, если процесс не удался.
Пример конфигурации может выглядеть так:
[program:udp_server]
user = <username>
command = /opt/mono/bin/mono /root/MySoft/UDPServer.exe "$@"
stdout_logfile = /var/log/udp_server-stdout.log
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 5
stderr_logfile = /var/log/udp_server-stderr.log
stderr_logfile_maxbytes = 10MB
stderr_logfile_backups = 5
Также это решение работало:
Я добавил свою строку текста /opt/mono/bin/mono /root/MySoft/UDPServer.exe "$@" &
к /etc/rc.d/rc.local