问题发现

今天在给ubuntu系统安装ftp服务时,一件奇怪的事引起了我的注意。当我服务安装完成后,想要测试一下是否能控制服务,便输入如下命令:

service vsftpd restart

它返回的信息是:

stop: Unknown job: vsftpd
start: Unknown job: vsftpd

另外甚至在/etc/init.d/文件夹中都没有发现vsftpd的启动脚本。

之后我google后在service命令前加了sudo,命令如下:

sudo service vsftpd restart

结果成功运行。

现在虽然ftp能够正常的启动和终止,但是另一个疑问没有解决,service不是调用/etc/init.d/文件夹里的启动脚本的吗,然而/etc/init.d/中并没有vsftpd这个脚本,为什么还能够运行?我通过man命令查看了一下service指令的信息,果然发现了一些端倪,里面是这样讲的

The SCRIPT parameter specifies a System V init script, located in /etc/init.d/SCRIPT, or the name of an upstart job in /etc/init.

于是我在/etc/init文件夹中果然发现了vsftpd.conf这个文件。但是又有奇怪的事情出现了,查看/etc/init/文件夹中许多文件是和/etc/init.d/文件夹中重复的,比如mysql。那么这两个文件夹有什么区别吗?

寻求答案

这种东西当然是寻求google的帮助最快了。果然很快就找到了一位外国大神的答案。他是这么说的:

/etc/init.d contains scripts used by the System V init tools (SysVinit). This is the traditional service management package for Linux, containing the init program (the first process that is run when the kernel has finished initializing¹) as well as some infrastructure to start and stop services and configure them. Specifically, files in /etc/init.d are shell scripts that respond to start, stop, restart, and (when supported) reload commands to manage a particular service. These scripts can be invoked directly or (most commonly) via some other trigger (typically the presence of a symbolic link in /etc/rc?.d/).

/etc/init contains configuration files used by Upstart. Upstart is a young service management package championed by Ubuntu. Files in /etc/init are configuration files telling Upstart how and when to start, stop, reload the configuration, or query the status of a service. As of lucid, Ubuntu is transitioning from SysVinit to Upstart, which explains why many services come with SysVinit scripts even though Upstart configuration files are preferred. In fact, the SysVinit scripts are processed by a compatibility layer in Upstart.

简而言之,/etc/init.d/就是旧时代liunx的用法,/etc/init/是现在Ubuntu的提倡并一步步转型的用法。为了平缓过渡,便让service命令可以同时寻找到两个文件夹。

问题思考

问题到这貌似解决了,但是感觉还差些什么。

在查看service命令时,是这么介绍的:

service - run a System V init script

没错,service这个命令一开始就是用在SysVinit上的,为了支持Upstart才额外增加了启动/etc/init/文件夹,那么如何使用Upstart启动服务呢。最后查看Upstart的文档,当我要重启mysql时。我只需要输入如下命令:

sudo restart mysql

而且Upstart的启动配置文件确实简单很多。

问题总结

其实这两个文件夹的区别也就是服务启动方式的区别,目前有三种启动方式。(例如我启动mysql服务)

1.只从/etc/init.d/文件夹启动:

/etc/init.d/mysql start

2.只从/etc/init/文件夹启动(Ubuntu提倡):

sudo start mysql

3.从两个文件夹中启动:

service start mysql

关于Ubuntu上的服务文件的更多相关文章

  1. ubuntu上vsftpd服务配置

    Ubuntu上提供两种常用的ftp服务应用:vsftpd 和 tftpd,区别如下: 1)vsftpd 支持客户端上下传文件,支持浏览器显示及下载,支持用户名密码认证,支持匿名访问,默认端口TCP:2 ...

  2. 在 Linux ubuntu 上安装 *.sh 文件

    简单说来就两步: 增加可执行权限 执行 事情是这样的,打算在 ubuntu 上安装一个 NetBeans IDE 来学习 Java,但是下载下来的文件是 .sh 格式的.图形界面下右键没有执行的选项. ...

  3. Centos7上添加自定义服务文件并开机启动

    Ⅰ-1 写服务文件 [Unit]   ##服务的说明Description:描述服务After:描述服务类别 [Service]   ##服务运行参数的设置Type=forking是后台运行的形式Ex ...

  4. (转)Ubuntu samba配置服务文件包

    转:http://os.51cto.com/art/201001/176366.htm Ubuntu samba服务配置是很不错的文件应用很有学习价值,这里我主要讲解Ubuntu samba服务配置的 ...

  5. Ubuntu上mysql, 通过python连接报错Can't connect to MySQL server on xxx (10061)

    通过sqlyog连接ubuntu上的mysql报错 试了试python直接连接也报同样的错 那应该就是ubuntu上mysql服务自己的问题了 查看mysql 版本 mysql -V root@clo ...

  6. Ubuntu上使用systemd创建服务文件来启动和监视底层网络应用程序实现守护进程

    在Linux上使用Nginx设置ASP.NET Core的托管环境,并部署到它 创建服务文件 创建服务定义文件: sudo vim /etc/systemd/system/kestrel-basic. ...

  7. Java FtpClient 实现文件上传服务

    一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...

  8. 解决IIS7.0服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题

    为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的 ...

  9. spring cloud实战与思考(三) 微服务之间通过fiegn上传一组文件(下)

    需求场景: 用户调用微服务1的接口上传一组图片和对应的描述信息.微服务1处理后,再将这组图片上传给微服务2进行处理.各个微服务能区分开不同的图片进行不同处理. 上一篇博客已经讨论了在微服务之间传递一组 ...

随机推荐

  1. Windows命令行bat批处理延迟sleep方法

    使用ping 的定时功能,精度1秒 实战:创建示例文件test.bat,内容如下: 代码如下:ping -n 3 127.0.0.1>nul 说明:3为ping包发送次数,可作为延迟秒数进行使用 ...

  2. SPOJ:OR(位运算&数学期望)

    Given an array of N integers A1, A2, A3…AN. If you randomly choose two indexes i ,j such that 1 ≤ i ...

  3. java web项目的目录结构

  4. Spring MVC访问页面直接显示源码

    转自:https://blog.csdn.net/u011781521/article/details/78751253

  5. CodeForces 1103D. Professional layer

    题目简述:给定$1 \leq n \leq 10^6$个正整数$1 \leq a_i \leq 10^{12}$,修改第$i$个正整数$a_i$的花费为$1 \leq e_i \leq 10^9$,以 ...

  6. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时10

    课时10 神经网络训练细节part1(上) 没有大量的数据也不会有太多影响,只需要找一个经过预训练的卷积神经网络然后进行调整 从数据集中抽样一小批数据, 将数据运入卷积神经网络中来计算损失值 通过反向 ...

  7. hdu 3622 Bomb Game【二分+2-SAT+tarjan】

    用read()会挂 二分半径,显然最优的是所有原都用这个最小半径,然后2-SAT把相交的圆建图,跑tarjan判一下可行性即可 #include<iostream> #include< ...

  8. 洛谷P2585 [ZJOI2006]三色二叉树(树形dp)

    传送门 设$dp[u][i]$表示点$u$颜色为$i$时最多(最少)的绿点个数(这里用$0$表示绿点) 然后直接用树形dp就可以了 记得把情况讨论清楚 //minamoto #include<b ...

  9. Beta版本冲刺第二天!

    该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...

  10. SQL 实战语句(9)

    1.如何同步根据部门表同步另外一个项目表的部门字段 update A set A.auditownerid=(select lp.epleaderId from (select ep.userid a ...