当我启动 CentOS 机器时,该httpd
服务会自动启动。如何制作具有相同功能的定制服务?我有一个用于挖矿的程序,我不想./miner
每次启动机器时都需要运行。
答案1
由于您使用的是 CentOS 7.x,因此创建一个单元。vim /usr/lib/systemd/system/miner.service
asroot
并输入以下内容:
[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