anchor.diff:  sudo /bin/systemctl start elasticsearch.service
   --------------------------------------------------
   
  -Also note that changing the `MAX_MAP_COUNT` setting in `/etc/sysconfig/elasticsearch` does not have any effect, you will have to change it in `/usr/lib/sysctl.d/elasticsearch.conf` in order to have it applied at startup.
  +还要注意, 改变 `/etc/sysconfig/elasticsearch` 中的 `MAX_MAP_COUNT` 设置不会有任何作用, 要想在启动时应用它, 你要在 `/usr/lib/sysctl.d/elasticsearch.conf` 配置文件中
  +改变它.
  
positive.code: 
  [[using-systemd]]
  [float]
  ==== Using systemd
  
  Distributions like Debian Jessie, Ubuntu 14, and many of the SUSE derivitives do not use the `chkconfig` tool to register services, but rather `systemd` and its command `/bin/systemctl` to start and stop services (at least in newer versions, otherwise use the `chkconfig` commands above). The configuration file is also placed at `/etc/sysconfig/elasticsearch` if the system is rpm based and `/etc/default/elasticsearch` if it is deb. After installing the RPM, you have to change the systemd configuration and then start up elasticsearch
  
  [source,sh]
  --------------------------------------------------
  
negative.code: [[setup-service]]
  == 作为Linux系统服务运行
  
  为了能够在操作系统中将 elasticsearch 作为系统服务运行, 官方提供的包试着尽可能让你简单地启动和停止 elasticsearch 在系统重启和升级期间.
  
  [float]
  === Linux
  
  目前我们的构建会自动的创建一个 debian 包 和一个 RPM 包, 它们可以在下载页面下载. 包本身并没有任何依赖, 但是你必须确保已经安装了 JDK.
  
  每个包都有一个配置文件, 它允许你设置以下参数
  
  [horizontal]
  `ES_USER`::               运行 Elasticsearch 的用户, 默认是 `elasticsearch`
  `ES_GROUP`::              运行 Elasticsearch 的用户组, 默认是 `elasticsearch`
  `ES_HEAP_SIZE`::          启动时的堆内存大小
  `ES_HEAP_NEWSIZE`::       新生代堆内存大小
  `ES_DIRECT_SIZE`::        直接存储器的最大值
  `MAX_OPEN_FILES`::        打开文件的最大数量, 默认是 `65535`
  `MAX_LOCKED_MEMORY`::     可锁定的最大内存值. 如果你在 elasticsearch.yml 文件中使用了 bootstrap.mlockall 选项, 将其设置为 "unlimited". 同时你必须要设置 ES_HEAP_SIZE.
  `MAX_MAP_COUNT`::         进程可拥有的内存映射区域最大数量. 如果你使用 `mmapfs` 作为索引存储类型, 请确保将其设置成一个很大的值. 想要了解更多信息, 查阅 https://github.com/torvalds/linux/blob/master/Documentation/sysctl/vm.txt[linux 内核文档] 关于 `max_map_count` 的部分. 它可以在 elasticsearch 启动前使用 `sysctl` 设置. 默认值是 `65535`
  `LOG_DIR`::               日志目录, 默认是 `/var/log/elasticsearch`
  `DATA_DIR`::              数据目录, 默认是 `/var/lib/elasticsearch`
  `CONF_DIR`::              配置文件目录 (which needs to include `elasticsearch.yml` and `logging.yml` files), defaults to `/etc/elasticsearch`
  `ES_JAVA_OPTS`::          你想应用的任何附加的Java选项. 如果你想要设置 `node.name` 属性, 但是又不想要改变 `elasticsearch.yml` 配置文件, 这个选项就很有用, 因为它是通过一个像 puppet 或 chef 的分布式系统来分发的. 示例: `ES_JAVA_OPTS="-Des.node.name=search-01"`
  `RESTART_ON_UPGRADE`::    配置在包升级时是否重启, 默认值是 `false`. 这意味着在安装一个包后你需要手工地重启 elasticsearch 实例 . 这样做的原因是确保集群中的升级不会导致持续的分片重新分配, 从而导致较高的网络流量并减少集群的响应次数.
  `ES_GC_LOG_FILE` ::       用于创建一个垃圾回收日志文件的绝对日志文件路径, 由 JVM 完成. 注意: 由于这个日志文件增长的非常快, 所以它默认是禁用的.
  
  [float]
  ==== Debian/Ubuntu
  
  debian 包附带了你所需要的一切, 因为它使用了像更新 `update-rc.d` 这样标准的 debian 工具来定义它运行时的运行级别. 如你所料, 初始化脚本放置在 `/etc/init.d/elasticsearch`.
  配置文件放置在 `/etc/default/elasticsearch`.
  
  debian 包默认不会启动 Elasticsearch 服务. 这样做的原因主要是为了防止实例在没有正确配置的情况下不小心加入到一个集群中. 使用 `dpkg -i` 安装完成之后, 你可以使用
  下面的命令来确保 elasticsearch 在系统启动时启动, 接着启动 elasticsearch:
  
  [source,sh]
  --------------------------------------------------
  