initdb__linux命令中文解释.html
ENVIRONMENT 环 境
PGDATA 声明数据库集群存储的目录;可以用 - D 选项覆盖。
SEE ALSO 参 见
postgres postgres(1), postmaster postmaster(1)
译者
中文网 laser@> Postgresql 中文 网 站 何 伟 平 < laser@ >
OPTIONS 选项
- D directory -- pgdata= directory --pgdata= 这个选项声明数据库集群应该存放在哪个目录。 这是initdb需要的唯一信息,但是你可以通过设 置 PGDATA 环境变量来避免键入, 这样做可能方便一些,因为稍后数据库服务器(postmaster)可以 通过同一个变量找到数据库目录。 - E encoding -- encoding= encoding --encoding=
INITDB
Section: PostgreSQL Server Applications (1) Updated: 2003-11-02 Index Return to Main Contents
NAME
initdb - 创建一个新的 PostgreSQL数据库集群
SYNOPSIS
initdb [ option... ] -- pgdata | - D directory --pgdata
DESCRIPTION 描述
initdb 创建一个新的 PostgreSQL 数据库集群。 一个数据库集群是由单个服务器实例管理的数据库集 合。 创建数据库系统包括创建数据库数据的宿主目录, 生成共享的系统表(不属于任何特定数据库的表)和创 建 template1 数据库。当你以后再创建一个新数据库时, template1 数据库里所有内容都会拷贝过 来。 它包括填充了象内建类型这样的系统表。 initdb 初始化该数据库集群的缺省区域和字符集编码。 有些区域范畴对该集群而言是全生命期固定的, 因此在运行 initdb 的时候选取正确的是非常重要的。 其它区域范畴可以在服务器启动之后的时间里改 变。 initdb 将把那些区域设置写到 postgresql.conf 配置文件,这样它们就是缺省的, 但是我们可以通 过编辑那些文件来修改它们。 要设置 initdb 使用的区域,参阅 --locale 选项的描述。字符集编码可以 在数据库创建的时候独立设置。 initdb 决定 template1 数据库的编码,而该ncoding 选项。 --encoding initdb 必须以运行数据库服务器进程的用户身份运行它。 因为服务器需要能够访问 initdb 创建的文件 和目录。 因为服务器不能以 root 身份运行,所以你也不能以 root 身份运行 initdb。(实际上它拒绝以 root 身份运行。) 尽管initdb会尝试创建相应的数据目录, 但经常会发生它没有权限做这些事情的情况。因为所需要的目录 的父目录通常是 root 所有的目录。 要为此安排做一个设置,用 root 创建一个空数据目录, 然后 用 chown 把该目录的所有权交给数据库用户帐号, 然后 su 成数据库用户,最后以数据库用户身份运 行 initdb。
Index
NAME SYNOPSIS DESCRIPTION 描述 OPTIONS 选项 ENVIRONMENT 环境 SEE ALSO 参见 译者 This document was created by man2html, using the manual pages.
选择模板数据库的编码方式。这将是你以后创建的数据库的缺省编码方式, 除非你创建数据库时覆 盖了它。 缺省是 SQL_ASCII。 -- locale= locale --locale= 为数据库集群设置缺省的区域。如果没有声明这个选项,那么区域 是从 initdb 运行的环境中继承 过来的。 lc-- lc - collate= locale --lc -- lc - ctype= locale --lc lc-- lc - messages= locale --lc lc-- lc - monetary= locale --lc lclc-- lc - numeric= locale --lc -- lc - time= locale --lc lc类似 --locale,但是只设置特殊范畴的区域。 - U username -- username= username --username= 选择数据库超级用户的用户名。 缺省是运行 initdb 的用户的有效用户。 超级用户的名字是什么并 不重要, 但是我们可以选择习惯的名字 postgres,即使操作系统的用户名字不一样也无所谓。 -W -- pwprompt --pwprompt 令 initdb 提示输入数据库超级用户的口令。 如果你不准备使用口令认证,这个东西并不重要。 否 则你将不能使用口令认证直到你设置了口令。 其他不常用的参数还有: -d -- debug --debug 从初始化后端打印调试输出以及一些其它的一些普通用户不太感兴趣的信息。 初始化后端 是 initdb 用于创建系统表的程序。 这个选项生成大量非常烦人的输出。 - L directory 告诉 initdb 到哪里找初始化数据库所需要的输入文件。 通常是不必要的。如果需要你明确声明的 话,程序会提示你输入。 -n -- noclean --noclean 缺省时,当initdb 发现一些错误妨碍它完成创建数据库集群的工作时, 它将在检测到不能结束工 作之前将其创建的所有文件删除。 这个选项禁止任何清理动作,因而对调试很有用。
linux中init命令的详细解释
linux中init命令的详细解释linxu下的init命令是进程初始化工具。
下面由店铺为大家整理了linux的init命令的详细解释的相关知识,希望对大家有帮助!一、linux中的init命令的详细解释init命令init命令是Linux下的进程初始化工具,init进程是所有Linux的进程的父进程,它的进程号为1。
init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。
语法init(选项)(参数)选项-b:不执行相关脚本而直接进入单用户模式;-s:切换到单用户模式。
参数运行等级:指定Linux系统要切换到的运行等级。
二、linux中的init命令的详解实例几个常用的命令查看系统进程命令:ps -ef | head查看init的配置文件:more /etc/inittab查看系统当前运行的级别:runlevel运行级别到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。
这个级别从0到6 ,具有不同的功能。
你也可以在/etc/inittab中查看它的英文介绍。
#0 停机(千万不能把initdefault 设置为0)#1 单用户模式#2 多用户,没有 NFS(和级别3相似,会停止部分服务)#3 完全多用户模式#4 没有用到#5 x11(Xwindow)#6 重新启动(千万不要把initdefault 设置为6)三、linux的init命令的六种模式简介6种模式中有两种是系统内定的:0:停止系统运行。
init 0〈回车〉相当于 halt〈回车〉。
6:重启系统。
init 6〈回车〉相当于 reboot〈回车〉。
如果你了解/etc/inittab文件,就千万不要把0设为缺省登录模式,否则你的Linux的运行就只能两点一线了——开机←→停机,或者是开机←→重启的无限循环。
interp__linux命令中文解释.html
器。
还有,没有通过它可以引用在应用中建立的第一个解释器的全局名字。
这两种限制的目的都是为了安全。
INTERP 命令COMMAND COMMAND COMMAND 使用 interp interp interp 命令建立、删除、和操纵从解释器,并在解释器之间共享或转换通道。
依赖于 option 参数,它可以有下列一些形式:interp interp aliasalias alias srcPath srcCmd 返回一个 Tcl 列表,它的元素是与叫做 srcCmd 的别名有关的 targetCmd 和 arg s(在建立别名时指定所有这些值;在从解释器中实际的源命令如果被重命名的话可能与 srcCmd 不同)。
interp interp alias alias alias srcPath srcCmd {}{}{}删除在从解释器中用 srcPath 标识的给 srcCmd 的别名。
srcCmd 引用在其下建立别名的名字;如果 源命令已经被重命名,则删除重命名后的命令。
interp interp alias alias alias srcPath srcCmd targetPath targetCmd ?arg arg ...?这个命令在一个从解释器和其他解释器之间建立一个别名(关于在一个从解释器和它的主解释器之间建立别名请参见下面的 alias alias alias 从命令)。
在这个命令中,两个从解释器可以在调用这个命令的解释器底下的解释器层次中的任何位置。
SrcPath 和 srcCmd 标识这个别名的来源。
SrcPath 是一个 Tcl 列表,它的元素选择一个特定的解释器。
例如,“a b ”标识一个解释器 b b ,它是解释器 a a 的一个从解释器,a 解释器是调用(命令)的解释器的一个从解释器。
一个空列表指定调用这个命令的解释器。
srcCmd 给出一个新命令的名字,将在源解释器中建立它。
linux 命令的中文手册
linux 命令的中文手册
Linux命令的中文手册是Linux系统中非常重要的资源,它提
供了关于各种命令的详细信息和用法说明,帮助用户更好地理解和
使用Linux系统。
Linux命令的中文手册通常以man(manual)命令
的形式提供,用户可以通过在终端中输入"man 命令名"来查看相应
命令的手册。
Linux命令的中文手册主要包括以下内容:
1. 命令的功能和作用,手册会详细介绍每个命令的功能和作用,帮助用户理解该命令可以完成的任务。
2. 语法和选项,手册会列出命令的语法结构和可用的选项,用
户可以根据手册了解命令的正确使用方法。
3. 示例和实例,手册通常会提供一些示例和实例,演示命令的
具体用法,帮助用户更好地理解命令的实际操作过程。
4. 相关说明和注意事项,手册还会包含一些相关说明和注意事项,帮助用户避免一些常见的错误使用情况。
用户可以通过man命令查看Linux命令的中文手册,比如要查
看ls命令的手册,可以在终端中输入"man ls"。
手册通常分为多个
部分,用户可以通过按下"q"键来退出手册的查看。
此外,还有一些在线资源和文档提供了Linux命令的中文手册,用户可以通过搜索引擎或者Linux系统自带的帮助文档来获取相关
信息。
总之,Linux命令的中文手册对于用户学习和使用Linux系
统非常重要,可以帮助用户更好地理解和掌握各种命令的用法和功能。
Linux的inode的理解
Linux的inode的理解⽂件名 -> inode -> device block⼀、inode是什么?理解inode,要从⽂件储存说起。
⽂件储存在硬盘上,硬盘的最⼩存储单位叫做"扇区"(Sector)。
每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会⼀个个扇区地读取,这样效率太低,⽽是⼀次性连续读取多个扇区,即⼀次性读取⼀个"块"(block)。
这种由多个扇区组成的"块",是⽂件存取的最⼩单位。
"块"的⼤⼩,最常见的是4KB,即连续⼋个 sector组成⼀个 block。
⽂件数据都储存在"块"中,那么很显然,我们还必须找到⼀个地⽅储存⽂件的元信息,⽐如⽂件的创建者、⽂件的创建⽇期、⽂件的⼤⼩等等。
这种储存⽂件元信息的区域就叫做inode,中⽂译名为"索引节点"。
⼆、inode的内容inode包含⽂件的元信息,具体来说有以下内容: * ⽂件的字节数 * ⽂件拥有者的User ID * ⽂件的Group ID * ⽂件的读、写、执⾏权限 * ⽂件的时间戳,共有三个:ctime指inode上⼀次变动的时间,mtime指⽂件内容上⼀次变动的时间,atime指⽂件上⼀次打开的时间。
* 链接数,即有多少⽂件名指向这个inode * ⽂件数据block的位置可以⽤stat命令,查看某个⽂件的inode信息:stat example.txt总之,除了⽂件名以外的所有⽂件信息,都存在inode之中。
⾄于为什么没有⽂件名,下⽂会有详细解释。
三、inode的⼤⼩inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统⾃动将硬盘分成两个区域。
⼀个是数据区,存放⽂件数据;另⼀个是inode区(inode table),存放inode所包含的信息。
每个inode节点的⼤⼩,⼀般是128字节或256字节。
initrd详解(转)
initrd详解(转)1.什么是 Initrdinitrd 的英⽂含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。
在 linux内核启动前, boot loader 会将存储介质中的 initrd ⽂件加载到内存,内核启动时会在访问真正的根⽂件系统前先访问该内存中的 initrd ⽂件系统。
在 boot loader 配置了 initrd 的情况下,内核启动被分成了两个阶段,第⼀阶段先执⾏ initrd ⽂件系统中的“某个⽂件“,完成加载驱动模块等任务,第⼆阶段才会执⾏真正的根⽂件系统中的 /sbin/init 进程。
这⾥提到的“某个⽂件“,Linux2.6 内核会同以前版本内核的不同,所以这⾥暂时使⽤了“某个⽂件“这个称呼,后⾯会详细讲到。
第⼀阶段启动的⽬的是为第⼆阶段的启动扫清⼀切障爱,最主要的是加载根⽂件系统存储介质的驱动模块。
我们知道根⽂件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核会多么庞⼤、臃肿。
Initrd 的⽤途主要有以下四种:1. linux 发⾏版的必备部件linux 发⾏版必须适应各种不同的硬件架构,将所有的驱动编译进内核是不现实的,initrd 技术是解决该问题的关键技术。
Linux 发⾏版在内核中只编译了基本的硬件驱动,在安装过程中通过检测系统硬件,⽣成包含安装系统硬件驱动的initrd,⽆⾮是⼀种即可⾏⼜灵活的解决⽅案。
2. livecd 的必备部件同 linux 发⾏版相⽐,livecd 可能会⾯对更加复杂的硬件环境,所以也必须使⽤ initrd。
3. 制作 Linux usb 启动盘必须使⽤ initrdusb 设备是启动⽐较慢的设备,从驱动加载到设备真正可⽤⼤概需要⼏秒钟时间。
如果将 usb 驱动编译进内核,内核通常不能成功访问 usb 设备中的⽂件系统。
Linux常用命令英文全称与中文解释(Linux入门)
Linux常⽤命令英⽂全称与中⽂解释(Linux⼊门)man: Manual 意思是⼿册,可以⽤这个命令查询其他命令的⽤法,例:man ls查看ls命令的⽤法和详解.(command --help或command -h也可以查看command命令的详解)ls: List files 列出当前⽬录下的⽂件(linux中⼀切皆⽂件)lsmod:List module,列出linux中加载的模块列表lscpu:List cpu,列出linux的cpu信息. CPU(Center Processing Unit)中央处理单元lsmem:List memory,列出linux的内存信息lsattr:List attribute,列出⽂件的属性信息pwd: Print working directory显⽰当前所在的⽬录(以绝对路径显⽰)cd: Change directory 切换⽬录,后⾯跟要进⼊的⽬的⽬录,⽬录路径可以⽤相对路径和绝对路径表⽰,后⾯不跟选项和参数时和cd ~命令可以⼀样回到当前登录⽤户的家⽬录。
cd -表⽰进⼊上次进⼊⽬录的位置,cd -连续使⽤即两个⽬录来回切换。
cd ..表⽰进⼊当前⽬录的上⼀级⽬录,例:当前⽬录为/root,使⽤cd ..命令后会回到/⽬录(/表⽰根⽬录,也是Linux⽬录结构的顶级⽬录)su:Switch user,切换⽤户(su - user1和su user1都能切换到user1,但尽量不要使⽤后者,因为后者只是shell层⾯上的切换,切换后⽤户的环境变量还是之前⽤户的)cat: Con cat enate 串联,在linux中主要查看⽂件的内容passwd:password的缩写,直接使⽤passwd命令,即命令后不跟选项和参数时表⽰更改当前登录⽤户的密码touch: 创建⽂件的命令,例:touch 1.txt为创建⼀个1.txt的普通⽂件,但touch命令后⾯跟的⽂件是当前存在的⽂件,那么会更新该⽂件的时间戳stat:stat us,命令后边跟⽂件,即可查看⽂件的时间戳等信息mkdir: mk=Make,dir=directory,意为创建⼀个⽬录(即⽂件夹)ln: Link 创建⼀个链接⽂件,⼀般使⽤-s参数,指创建⼀个软连接(相当于Windows⾥的快捷⽅式)mv: move,移动⽂件,也可以修改⽂件名。
Linux之init命令
Linux之init命令⼀、init是Linux系统操作中不可缺少的程序之⼀。
所谓的init进程,它是⼀个由内核启动的⽤户级进程。
内核⾃⾏启动(已经被载⼊内存,开始运⾏,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动⼀个⽤户级程序init的⽅式,完成引导进程。
所以,init始终是第⼀个进程(其进程编号始终为1)。
内核会在过去曾使⽤过init的⼏个地⽅查找它,它的正确位置(对Linux系统来说)是/sbin/init。
如果内核找不到init,它就会试着运⾏/bin/sh,如果运⾏失败,系统的启动也会失败。
⼆、init⼀共分为7个级别,这7个级别的所代表的含义如下:#init 0 - 停机(千万不能把initdefault 设置为0 )#init 1 - 单⽤户模式,只root⽤户进⾏维护#init 2 - 多⽤户,不能使⽤NFS(Net File System) 不联⽹#init 3 - 完全多⽤户模式(标准的运⾏级)#init 4 - 安全模式#init 5 - X11 (xwindow) 图形化界⾯模式#init 6 - 重新启动(千万不要把initdefault 设置为6 )三、开机默认模式设置⽅式当我们已界⾯模式退出后,再次开机进⼊时,还是界⾯模式,我们想不管我们以什么模式退出,在每次开机进⼊时默认是命令⾏模式,该如何设置呢?⽅法如下:在CentOS系统下有个跟⽂件⽬录:/etc/inittab1. # inittab This file describes how the INIT process should set up2. # the system in a certain run-level.3. #4. # Author: Miquel van Smoorenburg, <miquels@>5. # Modified for RHS Linux by Marc Ewing and Donnie Barnes6. #7. # Default runlevel. The runlevels used by RHS are:8. # 0 - halt (Do NOT set initdefault to this)9. # 1 - Single user mode10. # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)11. # 3 - Full multiuser mode12. # 4 - unused13. # 5 - X1114. # 6 - reboot (Do NOT set initdefault to this)15. #16. id:3:initdefault:看第16⾏的代码,这⾥可以设置默认启动模式,如果设置为 id:3:initdefault: 这代表默认启动为命令⾏模式。
Linux程序包安装rpm、yum、apt-get命令
Linux程序包安装rpm、yum、apt-get命令RPM程序包命名格式:⽂件名-版本号-修订号.产品类型.硬件平台.rpm常⽤选项说明:-i 安装新软件包。
-U 升级已有的软件包。
若不存在,则不安装该软件包。
-e 卸载已安装的软件包。
-v 显⽰详细的安装过程。
-h 使⽤“###”显⽰安装进度条。
-q 查询已安装的软件的数据库。
--initdb 初始化数据库,如果数据库不存在,则新建,否则不执⾏任何操作。
rebuilddb 重建,⽆论当前存在与否,直接新建数据库。
常见参数⽤法:安装: -ivh ,--nodeps,--replacepkgs卸载: -ev , --nodeps升级:-Uvh,-Fvh,--nodeps,--oldpackage查询:-qa,-qf,-qi,-qd,-qc,-q --scripts,-q --changlog,-q --requires校验;-V注意:rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时,需要先安装对应的依赖性软件包,⽅可继续安装。
导⼊GPG密钥:--import,-K,--nodigest,--nosidnature实例:1、查看vsftpd软件包的安装情况。
rpm -qa|grep vsftpd如果显⽰结果包含“vsftpd-2.2.2-6.e16.i686”,则说明系统已经安装了vcftpd软件包。
2、如果系统没有安装vsftpd软件包,可进⼊安装光盘的Pachages⽬录,输⼊下⾯命令安装:rpm -ivh vsftpd-2.2.2-6.e16.i686.rpm3、vsftpd软件包验证。
rpm -V vsftpdYUM管理Yum(全称为 Yellow dog Updater, Modified)是⼀个在和RedHat以及中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器⾃动下载RPM包并且安装,根据依赖性关系,⼀次安装所有依赖的软体包。
initdb 参数
initdb是PostgreSQL 的一个命令,用于初始化一个新的PostgreSQL 数据库集群。
当你想创建一个新的数据库系统时,你需要使用initdb。
以下是initdb的一些常用参数:1.-D或--pgdata=DIR: 指定数据库集群的根目录。
2.-N或--max-connections=NUM: 设置数据库集群的最大连接数。
3.-l或--listen-addresses=HOSTNAME: 指定数据库应该监听的地址。
例如,localhost或*表示所有地址。
4.-p或--port=PORT: 指定数据库应该监听的端口。
5.-U或--username=USERNAME: 指定初始化数据库集群的用户名。
6.-W或--password: 提示输入用户的密码。
7.-E或--encoding=CHARSET: 设置字符集。
8.-c或--config-settings: 使用指定的配置参数。
9.--wal-level=setting: 设置WAL (Write-Ahead Logging) 的级别。
10.--wal-segsize=N: 设置WAL 段的大小。
11.--wal-log-segsize=N: 设置WAL 日志段的大小。
12.--data-checksums: 启用数据校验和。
13.--auth-host=METHOD,METHOD,...: 设置认证方法。
14.--auth-local=METHOD,METHOD,...: 设置本地认证方法。
15.--auth-peer=METHOD,METHOD,...: 设置对等认证方法。
这只是initdb的一些常见参数,还有其他更多的参数可供使用。
为了获取完整的参数列表和详细的描述,你可以参考PostgreSQL 的官方文档或使用man initdb命令查看手册页。
linux服务方式启动程序脚本(init.d脚本)
linux服务⽅式启动程序脚本(init.d脚本)这才是真正正确的让jar后台启动的脚本,⽹络上的各种nohoup的脚本都是临时执⾏⼀次任务⽤的。
#!/bin/sh## init.d script##### BEGIN INIT INFO# Provides: mongodb# Required-Start: $network $local_fs $remote_fs# Required-Stop: $network $local_fs $remote_fs# Should-Start: $named# Should-Stop:# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: An object/document-oriented database# Description: MongoDB is a high-performance, open source, schema-free# document-oriented data store that's easy to deploy, manage# and use. It's network accessible, written in C++ and offers# the following features:# .# * Collection oriented storage - easy storage of object-# style data# * Full index support, including on inner objects# * Query profiling# * Replication and fail-over support# * Efficient storage of binary data including large# objects (e.g. videos)# * Auto-sharding for cloud-level scalability (Q209)# .# This package is build with V8 JavaScript engine.# .# High performance, scalability, and reasonable depth of# functionality are the goals for the project.### END INIT INFODAEMON=/usr/local/jdk1.8.0_40/bin/javaOPTION=-jarVAR=/usr/local/danabang.storage/danabang.storage.jarDESC=danabang.storage# Default defaults. Can be overridden by the /etc/default/$NAMENAME=danabang.storagePIDFILE=/var/data/danabang.storage/log/$NAME.pidRUNAS=tangruiif test ! -x $DAEMON; thenecho "Could not find $DAEMON"exit 0fi. /lib/lsb/init-functionsSTARTTIME=1DIETIME=10 # Time to wait for the server to die, in seconds# If this value is set too low you might not# let some servers to die gracefully and# 'restart' will not workrunning_pid() {# Check if a given process pid's cmdline matches a given namepid=$1name=$2[ -z "$pid" ] && return 1[ ! -d /proc/$pid ] && return 1cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`# Is this the expected server[ "$cmd" != "$name" ] && return 1return 0}running() {# Check if the process is running looking at /proc# (works for all users)# No pidfile, probably no daemon present[ ! -f "$PIDFILE" ] && return 1pid=`cat $PIDFILE`running_pid $pid $DAEMON || return 1return 0}start_server() {# Start the process using the wrapperstart-stop-daemon --background --start --quiet --pidfile $PIDFILE \ --make-pidfile --chuid $RUNAS \--exec $DAEMON -- $OPTION $VARerrcode=$?return $errcode}stop_server() {# Stop the process using the wrapperstart-stop-daemon --stop --quiet --pidfile $PIDFILE \--user $RUNAS \--exec $DAEMONerrcode=$?return $errcode}force_stop() {# Force the process to die killing it manually[ ! -e "$PIDFILE" ] && returnif running ; thenkill -15 $pid# Is it really dead?sleep "$DIETIME"sif running ; thenkill -9 $pidsleep "$DIETIME"sif running ; thenecho "Cannot kill $NAME (pid=$pid)!"exit 1fififirm -f $PIDFILE}case "$1" instart)log_daemon_msg "Starting $DESC" "$NAME"# Check if it's running firstif running ; thenlog_progress_msg "apparently already running"log_end_msg 0exit 0fiif start_server ; then# NOTE: Some servers might die some time after they start,# this code will detect this issue if STARTTIME is set# to a reasonable value[ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time if running ; then# It's ok, the server started and is runninglog_end_msg 0else# It is not running after we did startlog_end_msg 1fielse# Either we could not start itlog_end_msg 1fi;;stop)log_daemon_msg "Stopping $DESC" "$NAME"if running ; then# Only stop the server if we see it runningerrcode=0stop_server || errcode=$?log_end_msg $errcodeelse# If it's not running don't do anythinglog_progress_msg "apparently not running"log_end_msg 0exit 0fi;;force-stop)# First try to stop gracefully the program$0 stopif running; then# If it's still running try to kill it more forcefullylog_daemon_msg "Stopping (force) $DESC" "$NAME"errcode=0force_stop || errcode=$?log_end_msg $errcodefi;;restart|force-reload)log_daemon_msg "Restarting $DESC" "$NAME"errcode=0stop_server || errcode=$?# Wait some sensible amount, some server need this[ -n "$DIETIME" ] && sleep $DIETIMEstart_server || errcode=$?[ -n "$STARTTIME" ] && sleep $STARTTIMErunning || errcode=$?log_end_msg $errcode;;status)log_daemon_msg "Checking status of $DESC" "$NAME"if running ; thenlog_progress_msg "running"log_end_msg 0elselog_progress_msg "apparently not running"log_end_msg 1exit 1fi;;*)N=/etc/init.d/$NAMEecho "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 exit 1;;esacexit 0。
