首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么systemd在使用Fabric运行脚本时会获得子进程,而不是ssh?

systemd是一个Linux系统初始化和管理系统进程的工具。它可以启动、停止和管理系统中的各种服务和进程。Fabric是一个Python库,用于简化远程执行命令和部署应用程序的过程。

当使用Fabric运行脚本时,systemd会获得子进程而不是ssh的原因是因为systemd是系统级进程管理工具,它负责启动和管理系统中的各种服务和进程。而Fabric是一个用于远程执行命令的工具,它通过ssh协议与远程主机进行通信,并在远程主机上执行命令。

在使用Fabric运行脚本时,systemd可以通过创建子进程来执行命令,这样可以更好地管理和监控这些子进程。通过使用systemd,可以方便地控制子进程的生命周期,包括启动、停止、重启等操作。此外,systemd还提供了丰富的日志记录和错误处理机制,可以更好地追踪和排查问题。

对于使用Fabric运行脚本时获得子进程而不是ssh的优势是:

  1. 系统级进程管理:systemd是一个系统级进程管理工具,可以更好地管理和监控子进程的生命周期,包括启动、停止、重启等操作。
  2. 日志记录和错误处理:systemd提供了丰富的日志记录和错误处理机制,可以更好地追踪和排查问题,提高系统的可靠性和稳定性。
  3. 灵活性和可扩展性:通过使用systemd,可以方便地扩展和定制子进程的功能,满足不同应用场景的需求。
  4. 统一管理:使用systemd可以统一管理系统中的各种服务和进程,简化系统管理的工作量。

在腾讯云中,可以使用腾讯云的云服务器(CVM)来部署和管理系统,使用腾讯云的云监控(Cloud Monitor)来监控系统的运行状态,使用腾讯云的云日志服务(Cloud Log Service)来记录和分析系统的日志信息。相关产品和产品介绍链接如下:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云监控(Cloud Monitor):https://cloud.tencent.com/product/monitor
  • 腾讯云云日志服务(Cloud Log Service):https://cloud.tencent.com/product/cls

请注意,以上答案仅供参考,具体的技术实现和产品选择应根据实际需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化

用Python3开发的部署工具叫fabric3:fabric3,和fabric一样最大特点是不用登录远程服务器,本地运行远程命令,几行Python脚本就可以轻松部署。...Fabric是如何在远程执行命令的呢?其实Fabric所有操作都是基于SSH执行的,必要时它会提示输入口令,所以非常安全。更好的办法是指定的部署服务器上用证书配置无密码的ssh连接。...Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程Systemd的功能是用于集中管理和配置类UNIX系统。主要负责控制systemd系统和服务管理器。...Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。 ? 其他请看参考7。...系统中有两个日志服务,分别是: rsyslog systemd-journal systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程启动和运行中的标准输出和错误信息

61730

CentOS 部署 flask项目的方法

前提 有一个服务器(不然搞毛),购买可以参考优质国外vps推荐 有个人域名(当然,你可以直接使用 IP访问,但有点奇怪不是?...说明已经正在运行中了 修改密码 $ mysql -uroot -p 这里有要求你输入密码,Mysql安装时会生成一个默认密码,使用 grep “temporary password” /var/log...首先静态资源(jscssimg)会占用不少的请求资源,而对于 gunicorn 来讲它本身更应该关注实际业务的请求与处理不应该把资源浪费静态资源请求上;此外,单独运行 gunicorn 是没有办法起多个进程多个端口来负载均衡的...此时被管理进程被视为supervisor的进程,若该进程异常终端,则父进程可以准确的获取进程异常终端的信息,通过配置文件中设置autostart=true,可以实现对异常中断的进程的自动重启。...7. fabric 最后一步,我们使用fabric实现远程操作和部署。Fabric 是一个 Python 下类似于 Makefiles 的工具,但是能够远程服务器上执行命令。

98421

CentOS7RHEL7 systemd详解

(4) systemd的诞生 SysV init服务启动慢,以前并不是一个问题,尤其是Linux系统以前主要是服务器系统上,常年也难得重启一次。...还有更特殊的情况,如果进程产生了进程进程又自己fork了两次,脱离了主进程,要结束这样的进程,UpStart的办法是通过strace追踪fork,exit调用,这种方法非常复杂。...systemd利用了内核最新的特性,使用CGroup解决这个问题,CGroup的进程是树状的,因此无论服务如何启动新的进程,所有的这些相关进程都会属于同一个CGroup,systemd只需要简单地遍历指定的...不是所有的target都可以被映射到运行级别,在这种情况下,使用runlevel命令有可能会返回一个为N的不知道的运行级别,所以推荐尽量避免RHEL7中使用runlevel命令。...进程作为服务主进程的一个进程启动,父进程完全启动之后退出。

1.6K41

万字整理 | systemd 学习笔记

关于启动脚本的组织形式和风格,多个发行版本之间是各不相同、多种多样的。 所以如果需要修改启动脚本以用来加入一些自定义的模块,需要先理解该linux文件系统的脚本架构。...运行级别 0 用来关机,运行级别 6 用来重启,运行级别 1 用来使计算机进入单用户模式。 运行级别 S 不是给我们直接使用的,更多是为进入运行级别 1 时运行某些可执行脚本时被调用。.../rc5.d/目录中的这些启动脚本实际上都是一些链接文件,不是真正的rc启动脚本,真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下。...如果发现存在相应的脚本也存在K打头的链接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop为参数停止这些已经启动了的守护进程,然后再重新运行。...cgroups 提供了类似文件系统的接口,使用方便。当进程创建进程时,进程会继承父进程的 cgroups 。

55130

100个Linux命令(7)-进程管理

[通过时间片分配 CPU 时间] 由上面的图示所知,所有进程都有机会运行,但重要的进程总会获得更多的 CPU 时间,这种方式称为“抢占式多任务处理”:内核可以强制时间片耗尽的情况下收回cpu使用权,并将...显然,上面所说的bash内置命令不是shell中运行的。其他的所有方式,都是shell中完成,只不过方式不尽相同。...这也就解释了"$(echo $$)"中"$$"的结果是当前bash的pid号,不是shell的pid号,因为它不是使用bash命令进入的shell。...再来说说,为什么后台服务程序可以使用这两个信号。...三种方式可以改变因终端中断发送sighup导致进程也被结束的行为:一是使用nohup命令启动进程,它会忽略所有的sighup信号,使得该进程不会随着终端退出结束;二是将待执行命令放入shell中并放入后台运行

1.7K20

打造超级富容器开发环境(三):编写 Dockerfile

可以将各种操作拆分成许多脚本文件,然后 Dockerfile 中拷贝脚本文件进去执行,这样维护起来就很简单,需要改哪部分内容就直接进对应的脚本文件中改就行了。...然后将需要拷贝的配置文件,按照文件最终被拷贝进容器的目录结构存放, Dockerfile 中执行 rsync 的脚本将配置文件保持目录结构同步过去。.../scripts/final.sh /run.shRUN /run.sh && rm /run.shCMD ["/lib/systemd/systemd"]FAQ为什么不直接拷贝目录下所有脚本一次全部执行...这样虽然方便,但无法享受到容器构建的缓存,每次都要全量执行所有脚本分成多个 RUN 指令执行则可以利用缓存加速构建。为什么容器入口是 /lib/systemd/systemd?...为了让 systemd 作为 1 号进程启动,避免容器退出,也让富容器像虚拟机一样,用 systemd 管理进程,符合使用习惯。

11610

ansible安装部署步骤

管理节点只执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile。...ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能...真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。...ansible的架构:连接其他主机默认使用ssh协议 管理端:192.168.223.10 被管理端:192.168.223.20 被管理端:192.168.223.30 1、关闭防火墙 [root...2021年 04月 08日 星期四 12:12:19 CST [root@ansible ~]# ansible mysql -m command -a 'date' #当然也可以用别名进程查看

1K10

systemd 使用教程【转】

init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。 二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。...二、Systemd 概述 Systemd 就是为了解决这些问题诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。 根据 Linux 惯例,字母d是守护进程(daemon)的缩写。...启动 A 的时候,同时会去启动 B。...配置文件中,它只定义要在 postgresql 之后启动,没有定义依赖 postgresql 。...上面这个例子中,将KillMode设为process,表示只停止主进程,不停止任何sshd 进程,即进程打开的 SSH session 仍然保持连接。

93220

自动化运维利器 Fabric 教程

Fabric 1.x 版本中,它混杂了本地及远程两类功能;但自 Fabric 2.x 版本起,它分离出了独立的 Invoke 库,来处理本地的自动化任务, Fabric 则聚焦于远程与网络层面的任务...总而言之,使用 Fabric 时,应该注意版本差异的问题。...3、命令行用法 上例代码可写在任意的 .py 脚本中,然后运行脚本,或者稍微封装下再导入到其它脚本使用。 另外,Fabric 还是个命令行工具,可以通过fab命令来执行任务。...-i 或 --identity:指定 SSH 连接所用的私钥文件 -S 或 --ssh-config:指定运行时要加载的 SSH 配置文件 关于 Fabric 的命令行接口,更多内容可查看文档 [3]...方式是客户端本地用 ssh 命令(类似“ssh -W %h:%p gatewayhost”),创建一个进程,该进程与服务端进行通信,同时它能读取标准输入和输出。

1.1K20

Linux 守护进程|应急响应

Linux中: 打开terminal,也就是终端程序,之后可以获得一个shell 通过ssh连接到linux的ssh-server 服务器,也可以获得一个shell 通常我们都是通过以上两种方式来获得一个...session,每个session都是由一个或者多个进程组组成的,每个进程组称为 job,这里job不是任务,叫作业 从描述中可以看出,session管理的范围要比进程组大,打开一个终端,你执行100...号:也就意味着没有 stdin 0 、stdout 1、stderr 2 父进程不是用户创建的进程,init进程或者systemd(pid=1)以及用户人为启动的用户层进程一般以pid=1的进程为父进程...之所以要做这一步是因为下面两个原因: 假设daemon是从命令行启动的,父进程的终止会被shell发现,shell发现之后会显示出另一个shell提示符并让进程继续在后台运行。...如果仅仅是输出重定向,我们可以直接使用 > ,为什么会有nohup命令呢?没有点啥重要作用也对不起这个名字呀!

3.8K30

python 自动化部署工具Fabric

具体来说,Fabric是一个Python库,只要目标机器支持ssh访问,就可以借助fabric来进行远程操作(如在host1上对host2远程运行shell命令),显然,由于fabric是个Python...package,故其它Python package都可以被import到fabric特有的fabfile.py脚本中,这使得fabric如虎添翼,功能的丰富程度和运维脚本的可维护性上,远远超过用shell...Fabric还允许我们指定以并行方式(借助multiprocessing模块实现多个进程并行执行)多台机器上并行地运行任务,甚至还可在同一个fabfile文件中指定某些task以并行方式运行某些task...截止目前,我们可以看到,fabric允许我们混合使用上面列出的几种目标机器指定方式,但是我们要明白混合的结果是否符合预期。...具体实现上,需要事先在目标机器上生成ssh public key并配置~/.ssh/config文件中,然后定义任务的fabfile中将env.use_ssh_config设置为True来启用基于

1.6K20

Linux中父进程为何要苦苦地知道子进程的死亡原因?

白发人送黑发人 一个普遍的常识是,Linux里面总是“白发人送黑发人”,进程死亡,父进程透过wait()等待进程死亡,并清理进程僵尸,当然父进程也可以因此获得进程的死亡原因。...上述代码中,进程第18行通过pause()等待信号,父进程代码的第22行通过waitpid()等待进程的结束。其中的参数status是一个输出参数,可以获得进程死亡的原因。...wait_task_zombie()中,父进程会透过进程的僵尸分析获得进程的exit_code组合,并进一步拼装status。 事出必有因 那么,父进程为什么必须知道子进程的死亡呢?...你刚才不是说init检测到service死了后,“可以”自动重启服务吗?比如init重新启动httpd?那么,现在我杀死了simple-server,为什么systemd没有自动重新启动它呢?...这个完全可以根据真实service的特点量身定制。比如,对于oneshot的服务(就是开机只需要运行一次的服务,比如开机进行某种设置,完成一个文件系统的check,完成了就自动退出的进程)。

2K20

python之fabric模块

python 之 fabric 模块 Fabric 是一个用 Python 开发的部署工具,最大特点是不用登录远程服务器,本地运行远程命令,几行 Python 脚本就可以轻松部署。...只会打出警告信息不会中断执行。...Fabric是如何在远程执行命令的呢?其实Fabric所有操作都是基于SSH执行的,必要时它会提示输入口令,所以非常安全。更好的办法是指定的部署服务器上用证书配置无密码的ssh连接。...由于Fabric运行的命令都是基本的Linux命令,所以根本不需要用Fabric本身来扩展,会敲Linux命令就能用Fabric部署。...-H 指定目标主机,多台主机用‘,’号分隔 -p 远程账号的密码,fab执行时默认使用root账户 -P 以异步并行方式运行多主机任务,默认为串行运行 -R 指定role(角色),以角色名区分不同业务组设备

97750

使用 Fabric 自动化部署 Django 项目

使用 Fabric 可以服务器中自动执行命令。因为整个代码部署过程都是相同的,只要我们用 Fabric 写好部署脚本,以后就可以通过运行脚本自动完成部署了。...deploy 函数被调用时会传入一个 c 参数,这个参数的值是 Fabric 连接服务器时创建的 ssh 客户端实例,使用这个实例可以服务器上运行相关命令。...接着就是执行一系列部署命令了,进入某个目录使用 ssh 客户端实例的 cd 方法,运行命令使用 run 方法。...需要注意的是,每次 ssh 客户端实例执行新的命令是无状态的,即每次都会在服务器根目录执行新的命令,不是在上一次执行的命令所在目录,所以要在同一个目录下连续执行多条命令,需要使用 with c.cd...如果脚本运行中出错,检查一下命令行输出的错误信息,修复问题后重新运行脚本即可。以后当你本地开发完相关功能后,只需要执行这一个脚本文件,就可以自动把最新代码部署到服务器了。

1.1K20

Linux项目开发,你必须了解Systemd服务!

Systemd 简介Systemd是什么,以前linux系统启动init机制,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理...使用Systemd,就不需要再用init了。Systemd取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的进程。...,而是 Systemd 运行时产生的,描述一些系统服务的分组信息8.Slice:进程组,用于表示一个 CGroup 的树,通常也不是用户创建的9.Snapshot:Systemd快照,可以切回某个快照10...Type=simple:默认值,执行ExecStart指定的命令,启动主进程Type=forking:以fork方式从父进程创建进程,创建后父进程会立即退出Type=oneshot:一次性进程Systemd...但如果服务是由于正常的系统维护任务被停止,或者开发人员故意停止服务进行调试,那么它将不会被重启。其应用场景如下:生产环境:不希望因为维护或更新操作自动重启服务的生产环境中使用

10510
领券