У меня есть сервер с Centos 6. Я установил все настроенное, поэтому мое серверное приложение работает без сбоев, однако, если возникают какие-либо неожиданные перезагрузки, мне нужно вручную запустить сеанс SSH и запустить java-программу, которая его запускает.
Я рассмотрел несколько способов запустить программное обеспечение с сервера, но ни один из них не смог запустить программное обеспечение. Обычно я запускаю программное обеспечение с помощью этой команды: nohup java -jar "/etc/software.exe" -name "Test New York Server". Это работает, когда я добавляю его в сценарий и запускаю с терминала, но не в том случае, если я все равно добавляю его в /etc/rc.d/rc.local, что рекомендовалось в других потоках. Я ввел сенсорные команды для создания тестового файла, и они были выполнены, поэтому я, очевидно, иду неверным путем.
Сценарии загрузки, выполняющиеся по-разному при загрузке и на терминале, обычно являются результатом того, что сценарий полагается на что-то в среде. Пусть ваш скрипт выполнит env и запишет его в файл, и сравните это с env, когда вы запустите его в своей оболочке. Наиболее частая проблема связана с переменной PATH.
Сравните с вашим любимым программным обеспечением с открытым исходным кодом (Java), которое хорошо упаковано, чтобы получить идеи.
Мой - Грейлог. Их jar-архив оборачивается полным сценарием инициализации, поэтому он ведет себя как любая другая служба.