Когда я загружаю свой CentOS box, httpd
служба запускается автоматически. Как мне создать собственную службу, которая делает то же самое? У меня есть программа, которую я использую для майнинга, и я не хочу запускать ее ./miner
каждый раз при загрузке машины.
решение1
Поскольку вы используете CentOS 7.x, создайте Unit. vim /usr/lib/systemd/system/miner.service
as root
и поместите следующее содержимое:
[Unit]
Description=miner
[Service]
ExecStart=/path/to/miner
[Install]
WantedBy=multi-user.target
Вы можете добавить параметры ExecStop=
и ExecReload=
, если есть специальные аргументы, используемые для закрытия или перезагрузки служб.
После этого вам просто нужно будет systemctl enable miner.service
запускать его при каждой загрузке.
Похожие материалы:
решение2
В зависимости от поставщика программы-майнера у вас может быть уже объявлена соответствующая служба.
На CentOS вы можете проверить:
# chkconfig --list
и если вы видите свою программу, вы можете указать системе запускать ее автоматически во время загрузки
# chkconfig postgresql on
Если вы не нашли никаких результатов, вы можете создать свой собственный фиктивный скрипт, используя, например, шаблон:
Как создать службу для скрипта оболочки, чтобы можно было запускать и останавливать ее как демон?
затем поместите его в /etc/init.d/ и chmod +x его
Вы должны иметь возможность управлять своим приложением для майнинга как услугой со всеми вытекающими из этого преимуществами.
решение3
Если вам просто нужно запустить команду при загрузке, то пытаться создать реальную службу на самом деле не обязательно. Самое простое, что можно сделать, это добавить . /path/to/miner
/etc/rc.d/rc.local. Этот файл представляет собой скрипт, который запускается при каждой загрузке (и убедитесь, что rc.local является исполняемым), поэтому ваша команда будет запущена при запуске сервера.
Однако если вам действительно нужно, чтобы он работал как служба, наилучший способ сделать это будет зависеть от того, используете ли вы CentOS 7 или 5/6.
правка: забыл упомянуть, это будет выполнено от имени пользователя root, поэтому, если вам нужно запустить его от имени пользователя, не являющегося пользователем root, используйте вместо этогоsu - username -c /path/to/miner