Linux运行服务的几种方式

linux,运行,服务,几种,方式 · 浏览次数 : 551

小编点评

**摘要:** 本文介绍了如何使用 `nohup`, `screen`, `systemd5` 和 `crontab` 等工具设置服务。 **使用 `nohup`:** * `nohup` 是一种简单易用的启动服务工具。 * 使用 `nohup ./xxxx &` 命令将服务放在后台运行。 * `screen` 是一种可以打开多个服务窗口的工具,可用于管理服务状态。 * `systemd5` 可以使用 `nohup` 来启动服务。 **使用 `screen`:** * `screen` 可以创建多个服务窗口,并允许您从任何窗口中管理它们。 * 使用 `screen -S yourname -> 新建一个叫yourname的 sessionscreen -ls -> 列出当前所有的 sessionscreen -r yourname -> 回到 yourname这个 sessionscreen -d yourname -> 远程detach某个 sessionscreen -d -r yourname -> 结束当前session并回到 yourname这个 session可以通过 screen -S zhaobsh 打开一个 session 进行命令的输入。 **使用 `systemd5` 和 `crontab`:** * `systemd5` 可以管理系统服务。 * `crontab` 可以设置计划任务。 **注意:** * 使用 `nohup` 和 `screen` 需要在使用它们之前安装它们。 * 使用 `systemd5` 和 `crontab` 需要在使用它们之前安装它们。 * 使用 `systemd5` 和 `crontab` 需要在使用它们之前添加相应的配置文件。

正文

摘要

1. nohup &
2. screen
3. bg & disown
4. systemd
5. crontab @reboot

背景

最近一直在用linux
想着多总结一下.
因为服务运行的方式比较多, 想着也能够多总结一下
便于后面的问题处理

nohup 的方式

nohup 是最简单的一种启动服务的方式
nohup 的含义在于防止被终端. 
& 的方式是将服务放在后台运行
所以一般的方式为:
nohup ./xxxx & 
shell关了,后者是网络终端还会继续运行.

screen的方式

yum install screen -y
可以使用  screen 的命令打开服务窗口

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

可以通过 screen -S zhaobsh 打开一个session 进行命令的输入
如果网络出问题. 这个服务还是会一直存在的. 避免网络终端导致问题.

bg & disown

有时候很多服务都是必须有交互才可以的. 
此时通过nohup的方式不太合适.
如果机器又不能上网, 此时使用 screen 可能比较麻烦
所以可以使用 
ctrl+z的方式暂时中断服务
然后根据反馈的任务号
通过 
bg %数字 
的方式进行设置服务后台运行. 
然后在使用
disown -h %数字 
可以讲这个服务与 当前的shell进程断掉联系. 
这样服务就从一个前台服务 变成了后台服务. 

systemd

可以添加一个 systemd的服务  基本上可以如图进行设置
一般位于 /etc/systemd/system/ 下面
比如可以建立一个文件为 app.service
可以使用 systemctl  enable app 设置开机自动启动
然后使用systemctl start app 来启动服务

[Unit]
Description=app

[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
WorkingDirectory=/app
Restart=always
Type=forking
ExecStart=/app/startup.sh
ExecStop=/usr/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

crontab

可以设置计划任务,开机自动动服务
比较简单. 
第一: systemctl status crond
需要保证计划任务是开启的. 
第二: 需要编写一套启动脚本比如
cat /etc/startredis <<EOF
cd /redis && ./redis-server /redis/redis.conf 
EOF
chmod 700 /etc/startredis

第三设置开机启动
crontab -e
增加一行配置
@reboot /etc/startredis

注意配置方式跟vim 是一样的
insert 进入输入模式
ESC 退出到命令模式
输入 :wq 保存并且退出.

与 Linux运行服务的几种方式相似的内容:

Linux运行服务的几种方式

摘要 1. nohup & 2. screen 3. bg & disown 4. systemd 5. crontab @reboot 背景 最近一直在用linux 想着多总结一下. 因为服务运行的方式比较多, 想着也能够多总结一下 便于后面的问题处理 nohup 的方式 nohup 是最简单的一

Linux 查看内存使用情况的几种方法

在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。今天我们就来看看都有那些方法可以查看内存信息。

[转帖]Linux内存占用常用的几个分析方法,你确定都知道?

https://cloud.tencent.com/developer/article/2168100 0. 引言: 系统内存是硬件系统中必不可少的部分,定时查看系统内存资源运行情况,可以帮助我们及时发现内存资源是否存在异常占用,确保业务的稳定运行。 例如:定期查看公司的网站服务器内存使用情况,可以

[转帖]编译实战 | 手摸手教你在Windows环境下运行Redis6.x

原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra。 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看只支持linux系统,无奈要么启动虚拟机、要么装在云服务器上。 这不前几天又是这样,刚想用一下Red

[转帖]Linux命令之systemctl命令

一、systemctl命令简介 CentOS 5使用SysV init;CentOS 6使用Upstart,CentOS 7使用Systemd管理守护进程。centos7采用 systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。独立服务的服务启动脚本都在目录 /usr/lib

[转帖]JMETER性能监控之serverAgent

对linux服务器的服务进行压测时,服务器的运行情况可以通过添加插件serverAgent来观察,可以实时监控性能指标。 1 (一)环境准备 1、下载zip包ServerAgent-2.2.3.zip 2、在服务器中,创建一个文件夹serveragent,名字随便起 mkdir serveragen

.NET微服务系统迁移至.NET6.0的故事

本次迁移涉及的是公司内部一个业务子系统,该系统是一个多样化的应用,支撑着公司的多个业务方向。目前,该系统由40多个基于.NET的微服务应用构成,使用数千个CPU核心和数TB内存,在数百个Linux容器中运行。每天,该系统需要处理数十亿次请求。 该系统其中大部分服务是在2018-2019年左右由老旧.

同步时间,为什么我选 Chrony 而不是 NTP ?

初识 chrony chrony 是网络时间协议(Network Time Protocol )的通用实现 它不但可以提供保持系统时间与 NTP 时钟服务器同步的服务,还能作为 NTP 服务器对其他服务器提供时间同步服务 chrony 特点: 任何情况下都能稳定良好运行(例如不稳定的网络中、不稳定的

[转帖]Nginx 服务并发过10万的Linux内核优化配置

https://www.shuzhiduo.com/A/6pdDejeXzw/ 以下Linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享一下,如有那位高人看到配置上有问题,请给与指出! # Controls the use of TCP syncook

[转帖]线上环境 Linux 系统调用追踪

线上环境 Linux 系统调用追踪 PingCAP 提到如何动态追踪进程中的系统调用,相信大家第一时间都能想到 strace,它的基本用法非常简单,非常适合用来解决 “为什么这个软件无法在这台机器上运行?” 这类问题。但如果需要分析线上服务 (特别是延迟敏感型)的某些系统调用的延迟时,strace