Как создать службу, которая запускается при загрузке в CentOS?

Как создать службу, которая запускается при загрузке в CentOS?

Когда я загружаю свой CentOS box, httpdслужба запускается автоматически. Как мне создать собственную службу, которая делает то же самое? У меня есть программа, которую я использую для майнинга, и я не хочу запускать ее ./minerкаждый раз при загрузке машины.

решение1

Поскольку вы используете CentOS 7.x, создайте Unit. vim /usr/lib/systemd/system/miner.serviceas 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

Связанный контент