博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
systemd的简单使用
阅读量:2342 次
发布时间:2019-05-10

本文共 1303 字,大约阅读时间需要 4 分钟。

原链接:

在linux系统中,经常需要开机自动启动一些程序,长时间的在后台运行。比如网站的后台程序,数据库程序等等。这些长时间运行的程序在系统中被称之为服务。对于服务的管理操作系统中有一套很完善的管理程序。可以保证服务开机后自动启动,服务程序崩溃后自动重启。对于更复杂的有服务程序间有依赖的情况也可以轻松的处理。下面就介绍一下这个管理程序如何使用。

以Ubuntu为例,Ubuntu在16.04之前的服务管理程序是upstart,在16.04之后都换成了systemd,两者的使用方法也比较类似,从一个系统迁移到另一个系统也比较容易。下面就介绍一下systemd的简单使用方法。

比如我们想要长时间的在后台执行一个程序,这个程序的路径是

/home/oumeng/Documents/SharpLink/SharpLink/bin/Debug/SharpLink.exe
我们想要这个程序开机后自动启动,那么就可以创建一个叫做toxserver.service的文件,文件内容如下

[Unit]Description=Tox Server DaemonAfter=basic.target[Service]WorkingDirectory=/home/oumeng/Documents/SharpLink/SharpLink/bin/DebugExecStart=/home/oumeng/Documents/SharpLink/SharpLink/bin/Debug/SharpLink.exeRestart=always[Install]WantedBy=basic.target

这个文件的意义也是很明确的。首先在Unit部分中Description是服务程序的介绍,After是服务程序的执行条件。basic.target是一个系统定义的Unit。包含了系统启动相关的程序。After=basic.target的含义就是开机后自动执行。

然后就是Service的部分。WorkingDirectory定义了环境目录,ExecStart就是这个服务程序的可执行文件路径。Restart是说服务崩溃的时候要不要重启。这里是设置成了Always,也就是服务要不断的重启。

最后Install部分定义了这个服务的依赖关系。我们这个例子只依赖于basic.target

这个把文件保存在/usr/lib/systemd/system文件夹内就可以了。但是默认服务是没有Enable的。需要执行一条指令Enable一下才能正常使用。

sudo systemctl enable toxserver.service
启动服务程序
sudo service toxserver start
查看服务运行状态
sudo service toxserver status
执行结果如下图
0_1487831613142_Screenshot from 2017-02-23 14-33-01.png

关闭服务

sudo service toxserver stop
禁用服务
sudo systemctl disable toxserver.service
查看服务程序的日志文件
journalctl -u toxserver
0_1487831801576_Screenshot from 2017-02-23 14-36-09.png

转载地址:http://afdvb.baihongyu.com/

你可能感兴趣的文章
类的公有私有保护继承
查看>>
类的常量成员的初始化
查看>>
类成员初始化顺序
查看>>
拷贝构造和赋值函数
查看>>
将类的方法声明为虚函数的作用
查看>>
函数指针
查看>>
进程调度的概念
查看>>
操作系统典型调度算法
查看>>
1.内存管理的概念
查看>>
2.内存覆盖与内存交换
查看>>
3.内存连续分配管理方式
查看>>
C++对象的内存模型
查看>>
C++函数编译原理和成员函数的实现
查看>>
this指针详解
查看>>
static静态成员变量和静态成员函数
查看>>
构造函数的执行顺序
查看>>
二维数组指针
查看>>
逗号表达式
查看>>
迭代器失效
查看>>
常引用
查看>>