linux启动进程的方式

最基础的 nohup 方式

这是最简单的方式,也是 linux 新手们很容易搞混淆的一个经典问题:

command

command > /dev/null

command > /dev/null 2>&1

command &

command > /dev/null &

command > /dev/null 2>&1 &

command &> /dev/null

nohup command &> /dev/null

请回答以上命令的异同……

具体不一一解释了。直接说答案,想要维持一个长期后台运行的 logstash,你需要同时在命令前面加nohup,后面加 &。

更优雅的 SCREEN 方式

screen 算是 linux 运维一个中高级技巧。通过 screen 命令创建的环境下运行的终端命令,其父进程不是 sshd 登录会话,而是 screen 。这样就可以即避免用户退出进程消失的问题,又随时能重新接管回终端继续操作。

创建独立的 screen 命令如下:

screen -dmS elkscreen_1

接管连入创建的 elkscreen_1 命令如下:

screen -r elkscreen_1

然后你可以看到一个一模一样的终端,运行 logstash 之后,不要按 Ctrl+C,而是按 Ctrl+A+D 键,断开环境。想重新接管,依然 screen -r elkscreen_1 即可。

如果创建了多个 screen,查看列表命令如下:

screen -list

最推荐的 daemontools 方式

不管是 nohup 还是 screen,都不是可以很方便管理的方式,在运维管理一个 ELK 集群的时候,必须寻找一种尽可能简洁的办法。所以,对于需要长期后台运行的大量程序(注意大量,如果就一个进程,还是学习一下怎么写 init 脚本吧),推荐大家使用一款 daemontools 工具。

daemontools 是一个软件名称,不过配置略复杂。所以这里我其实是用其名称来指代整个同类产品,包括但不限于 python 实现的 supervisord,perl 实现的 ubic,ruby 实现的 god 等。

以 supervisord 为例,因为这个出来的比较早,可以直接通过 EPEL 仓库安装。

yum -y install supervisord --enablerepo=epel

在 /etc/supervisord.conf 配置文件里添加内容,定义你要启动的程序:

[program:elkpro_1]

environment=LS_HEAP_SIZE=5000m

directory=/opt/logstash

command=/opt/logstash/bin/logstash -f /etc/logstash/pro1.conf -w 10 -l /var/log/logstash/pro1.log

[program:elkpro_2]

environment=LS_HEAP_SIZE=5000m

directory=/opt/logstash

command=/opt/logstash/bin/logstash -f /etc/logstash/pro2.conf -w 10 -l /var/log/logstash/pro2.log

然后启动 service supervisord start 即可。

logstash 会以 supervisord 子进程的身份运行,你还可以使用 supervisorctl 命令,单独控制一系列 logstash 子进程中某一个进程的启停操作:

supervisorctl stop elkpro_2

linux如何查看DMS的进程id,​linux启动进程的方式相关推荐

  1. linux与windows查看占用端口的进程ID并杀死进程

    有时候tomcat出现端口被占用,需要查出进程ID并杀死进程. 1.查找占用端口的进程ID(windows与linux一样  8005也可以加上引号   grep可以用findstr替换) 6904就 ...

  2. linux select 进程id,Linux基础命令---显示进程ps

    ps ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的.如果您希望重复更新所选内容和显示的信息,请使用top(1)代替. 请注意,"ps-aux"与"ps ...

  3. linux下看pcie的设备id,linux lspci查看pci总线设备信息

    linux lspci查看pci总线设备信息 linux中lspci是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具,比如查看网卡.存储等信息. 参数 -v 使得 lspci 以 ...

  4. win32根据进程名获取进程ID或者终止进程

    第一部分: 根据进程名获取进程ID. 首先我们需要了解三个windows API函数: HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,DWO ...

  5. C#实现进程监视并启动进程

    C#实现进程监视并启动进程 FORM1代码 program代码 FORM1代码 下面展示代码 using System; using System.Windows.Forms; using Syste ...

  6. linux如何查询进程ID和关闭进程

    1.查看端口占用的进程号 (1)比如要查询8080 端口 lsof -i:8080 COMMAND:进行成名,如上说明8080被一个server进程占用 PID:进程的ID,一般杀掉进程时就是指定进程 ...

  7. linux命令查看cpu负载,怎么使用Linux命令查看CPU使用率

    在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率的命令主要有4个,即top.vmstat.mpstat和prstat命令,一起来了解下吧. ...

  8. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  9. linux下查看usb插拔日志,Linux下侦测 USB Disk 插拔

    #include #include #include #include // netlink.h 中定义 //struct sockaddr_nl //{ // sa_family_t     nl_ ...

最新文章

  1. 【已解决】烂泥:耳机有声音,话筒却没有输入……
  2. numpy.ravel() vs numpy.flatten()
  3. 关于自增id 你可能还不知道
  4. OpenCV将现有算法移植到G-API的实例(附完整代码)
  5. mysql 设置按天分表_MySQL 优化实战记录
  6. 设计制作简单计算机,自己设计制作CPU与单片机
  7. ap计算机科学a买什么书,准备AP*计算机科学A考试-第1部分
  8. JavaWeb:实现文件上传与下载
  9. map和json数组以及JSON对象和的区别以及相互转换
  10. 计算机运行卡英语怎么说,处理电脑卡顿(国外英文资料).doc
  11. 奥的斯维修服务器无响应,奥的斯GEN-2电梯故障现象:不定层的平层停梯,外呼无用断电或打检修会恢复还有运行至某层不开门自动去找平...
  12. 【STM32】CubeMX+HAL库之 硬件IIC+DMA控制OLED(兼容SSD1306SH1106驱动)
  13. 制图大赛计算机二维绘图,第五届“高教杯”全国大学生先进成图技术与产品信息建模创新大赛 机械类 计算机绘图试卷.pdf...
  14. (压位)高精度乘法,高精度加法,高精度减法,高精度除法
  15. 惠普台式计算机BIOS密码设置,惠普电脑开机bios密码忘了怎么解决
  16. 不用CSDN博客了,用博客园。。。
  17. 已解决-Outlook 收件箱全部标记为已读,但还是有未读数字提示
  18. 精选收集50个计算机热门视频教程免费下载
  19. 常见操作系统命令注入思路
  20. SDU项目实训——同态加密技术学习

热门文章

  1. 访问学者研修计划要写哪几方面的内容?
  2. hdu计算机学院大学生程序设计竞赛(2015’11)1003 玩骰子
  3. WTG下载:制作U盘系统和移动硬盘WTG
  4. Python中的and、or及not
  5. js 截取字符串后几位,字符串反转
  6. java上传zip文件并解压读取
  7. 《软件测试 第 2 版》读书笔记
  8. coreldraw x4怎么会蓝屏_精简-系统爱好者
  9. 粉笔计算机基础知识,1根粉笔讲:“计算机编程”
  10. 计算机组织与框架--六个基本逻辑门