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

如何编写bash脚本以便在进程死机时重新启动进程

问: 我有一个python脚本,它将检查队列并对每个元素执行操作: # checkqueue.py while True: check_queue() do_something() 我如何编写一个...bash脚本来检查它是否正在运行,如果没有,则启动它。...因为只有启动你的进程的进程才能可靠地等待它结束。而这在Bash中很容易实现。 until procA; do echo "procA crashed with exit code $?....." >&2 sleep 1 done 上面的bash代码在一个until循环中运行procA。第一行启动procA并等待它结束。当它结束时,until检查其退出状态。...然后需要做的就是启动这个bash脚本,它将监控procA并在必要时重新启动它。如果你想在(操作系统)启动启动监控脚本,你可以用@reboot规则在用户的 cron(1) 中调度它。

16520
您找到你想要的搜索结果了吗?
是的
没有找到

如何入门 Bash 编程

这就是 Bash 擅长的领域:交互式编程。在终端中执行一个动作时,你也在学习如何编写脚本。 例如,我曾经负责将大量 PDF 书籍转换为低墨和友好打印的版本。...我的第一个想法是学习如何编写 PDF 编辑器脚本,但是经过数天的研究,我找不到可以编写编辑 PDF 应用程序脚本(除了非常丑陋的鼠标自动化技巧)。...向 Bash 脚本传参数 在终端中运行命令与在 Shell 脚本中运行命令之间的区别在于前者是交互式的。在终端中,你可以随时进行调整。...在 Shell 脚本中,有一些预定义的可以反映脚本启动方式的变量。初始变量是 $0,它代表了启动脚本的命令。下一个变量是 $1 ,它表示传递给 Shell 脚本的第一个 “参数”。...脚本都需要先使用 Bash,然后学习如何将这些脚本仅仅是一个命令列表变成响应输入的东西。

93030

linux全局和个人配置文件说明

1.bash配置文件:1)、全局(bash的配置文件)有 /etc/profile /etc/profile.d/* 与 /etc/bashrc其实都是bash这个程序启动的时候会读取配置信息的....无论现在什么样的应用程序,大多数都需要用配置文件来保存用户可以进行的设定的2)、用户个人:~/.bash_profile 和 ~/.bashrc 我们对bash所做的任何设定,都可以将这些修改写入到这些文件中...,但是这些文件还略有不同,并不是每一次bash的执行都会读取每一个bash配置文件的,这要取决于用户启动bash启动方式(用户登陆,执行脚本)2. bash启动运行模式:(交互和非交互模式)1.)...、非交互式模式将来我们通过系统的自动化执行命令定义好定时任务执行脚本,用户不需要登录,脚本就会运行,而脚本的运行需要解释器去执行,而bash的解释器就是bash,因此每一个脚本运行起来就会启动一个bash...进程, 因此,交互式和非交互式bash进程读取的配置文件是不一样的,而且读取次序也有所不同.次序很关键:如果同一个变量或者设定出现了多次,那最后读取的生效。

4.1K10

深入了解定制 Bash | Linux 中国

Bash 内置功能很强大,甚至能够作为一门 高级语言 独当一面。Bash 的几个关键字和操作符类似于 C 语言。 Bash 能够以交互式或非交互式模式启动。...Bash 在非交互模式下运行的例子是,当命令和数据文件或 shell 脚本通过 管道 传送到 Bash 时。...比如,交互式 + 受限 + POSIX 或者非交互式 + 非登录 + 远程。不同的启动模式,决定着 Bash 所读取的启动文件。理解这些操作模式,有助于帮助我们修改启动文件。...下一幅图展示了 Bash 作为交互式 shell 启动时的过程。例如,当用户桌面环境打开终端模拟器时,会按照以下顺序进行。...终端模拟器也可以作为登录会话启动,有些人总喜欢用登录环境。你使用终端和电脑的姿势,取决于你如何修改(或不修改)你的点文件。 如果你很好奇自己的命令行处于什么会话状态,使用下面这个脚本来判断一下。 #!

1.1K30

Livy:基于Apache Spark的REST服务

背景 Apache Spark作为当前最为流行的开源大数据计算框架,广泛应用于数据处理和分析应用,它提供了两种方式来处理数据:一是交互式处理,比如用户使用spark-shell或是pyspark脚本启动...jar包,spark-submit脚本启动Spark应用程序来执行用户所编写的逻辑,与交互式处理不同的是批处理程序在执行过程中用户没有与Spark进行任何的交互。...两种处理交互方式虽然看起来完全不一样,但是都需要用户登录到Gateway节点上通过脚本启动Spark进程。这样的方式会有什么问题吗? 首先将资源的使用和故障发生的可能性集中到了这些Gateway节点。...由于Spark采用脚本的方式启动应用程序,因此相比于Web方式少了许多管理、审计的便利性,同时也难以与已有的工具结合,如Apache Knox。...Livy交互式会话是Spark交互式处理基于HTTP的实现。有了Livy的交互式会话,用户无需登录到Gateway节点上去启动Spark进程并执行代码。

3.8K80

Awesome-Shell资源

命令行效率 定制 针对开发者 系统工具 下载与服务 多媒体与文件格式 应用程序 游戏 Shell 包管理 Shell 脚本开发 指南 Awesome Zsh !...命令加到书签 mackup - 云同步应用程序的配置文件(OS X/Linux) parallel - 以并行化方式标准输入构造并执行 shell 命令行 pathpicker - 允许将 grep...- Dropbox Uploader 是用来 Dropbox 上传、下载、列出或删除文件的 Bash 脚本 httpie - HTTPie 是一个命令行 HTTP 客户端,用户友好的 cURL 替代品...http-server - http-server可以启动一个轻量级的http服务 ngincat - 使用 netcat 的微型 Bash HTTP 服务器 resty - 你可以在管道中使用的小型命令行...的 Shell 风格指南 Linux 文档项目: Bash 编程 - 简介/如何做 Linux 文档项目: 高级 Bash 脚本指南 WikiBooks: Bash Shell 脚本 使用非官方的 Bash

1.9K00

Shell 进阶指南

命令行效率 定制 针对开发者 系统工具 下载与服务 多媒体与文件格式 应用程序 游戏 Shell 包管理 Shell 脚本开发 指南 Awesome Zsh Awesome Fish 其它 Awesome...- Dropbox Uploader 是用来 Dropbox 上传、下载、列出或删除文件的 Bash 脚本 httpie - HTTPie 是一个命令行 HTTP 客户端,用户友好的 cURL 替代品...http-server - http-server可以启动一个轻量级的http服务 ngincat - 使用 netcat 的微型 Bash HTTP 服务器 resty - 你可以在管道中使用的小型命令行...基于命令行的应用程序或从命令行访问现有服务。...及 Bash 陷阱 Google 的 Shell 风格指南 Linux 文档项目: Bash 编程 - 简介/如何做 Linux 文档项目: 高级 Bash 脚本指南 WikiBooks: Bash Shell

2.7K71

《Linux命令行与shell脚本编程大全》 第六章环境变量

bash检查的启动文件取决于启动bash shell 的方式。启动方式有三种: 1.登录shell:登录系统时,bash shell会作为登录shell启动。会5个启动文件里面读取命令。...2.交互式shell进程 不是系统登录时启动的,比如在终端下直接运行bash。这个就是交互式shell进程。...3.非交互式shell 系统执行shell脚本时用的就是这种shell。...bash shell提供BASH_ENV环境变量。当启动交互式shell时,会检查BASH_ENV来查看要执行的启动文件。如果有,shell会执行里面的命令。这通常包含shell脚本变量设置。...我的电脑没有BASH_ENV值。是如何处理的呢?通过继承父shell的导出过的变量。 比如:父shell是登录shell。

982100

Shell 编程(3)-bash 配置文件

有些时候登录系统时可以交互的,如正常登录系统,有些时候时无交互的,如执行一个脚本bash 启动类型分为交互式 shell 和非交互式 shell。...login_shell 分析几种 bash启动方式 正常登录 伪终端登录,如 ssh 登录,或虚拟终端登录时,为交互式登录 shell [root@localhost ~]# echo $PS1;...= "$-" ]; then # 将"$-"左向右模式匹配"*i"并将匹配到的内容删除(即进行变量切分),如果"$-"切分后的值不等于"$-",则意味着是交互式shell ....但并非所有非交互式,非登录式 shell 启动时都会如此。...几乎执行所有的shell脚本都不会特意带上"--login"选项,因此shell脚本不会加载任何bash环境配置文件,除非手动配置了变量BASH_ENV。

1.4K10

shell编程菜鸟教程_java并发编程实战 pdf

内核是Linux系统的心脏,开机自检就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存。...3,java进程信息文件存储地址被设置,不在/tmp目录下 登录Shell和交互shell 交互式的:顾名思义,这种shell中的命令时由用户键盘交互式地输入的,运行的结果也能够输出到终端显示给用户看...非交互式的:这种shell可能由某些自动化过程启动,不能直接请求用户的输入,也不能直接输出结果给终端用户看。输出最好写到文件。比如使用Shell脚本。...一旦打开一个交互式login shell,或者以–login选项登录的非交互式shell,都会首先加载并执行/etc/profile中的命令,然后再依次加载~/.bash_profile, ~/.bash_login...当bash以login shell启动时,它会执行/etc/profile中的命令,然后/etc/profile调用/etc/profile.d目录下的所有脚本;然后执行~/.bash_profile,

4.5K20

【Linux】《how linux work》第十三章 用户环境

路径应该包括包含对常规用户有兴趣的每个应用程序的目录。...在bash中,你可以以下启动文件名中选择:.bash_profile、.profile、.bash_login和.bashrc。 哪一个适合你的命令路径、手册页路径、提示符、别名和权限掩码?...主要的两种shell实例类型是交互式和非交互式,但其中只有交互式shell是感兴趣的,因为非交互式shell(例如运行shell脚本的shell)通常不会读取任何启动文件。...交互式shell是你用来终端运行命令的那些,就像你在本书中看到的那些,它们可以被分类为登录或非登录。...其中大部分都会启动一个非交互式登录shell,以保留上述登录与非登录模型。

15010

kubectl 高效使用技巧

在学习如何更高效地使用 kubectl 之前,你应该对它是如何工作的有个基本的了解。kubectl 是 Kubernetes 集群的控制工具,它可以让你执行所有可能的 Kubernetes 操作。...Kubelet 存储后端读取 Pod 定义并指示容器运行时来运行在 worker 节点上的容器。这样我们的 ReplicaSet 应用程序就运行起来了。...示例应用程序 使用自定义列输出格式有无限可能,因为你可以在输出中显示资源的任何字段或字段组合。以下是一些示例应用程序,但你可以自己探索并找到对你有用的应用程序。...交互式模式允许你通过交互式模糊搜索界面选择目标上下文或命名空间。...,如果使用 Shell 脚本,则具有可以轻松插件调用 kubectl 的优势。

1.3K20

.bashrc 和 .bash_profile 的异同

简单来讲,一个交互式 shell 就是一个可以读取和写入用户终端的 shell,而非交互式 shell 是一个不和终端关联的 shell,就像执行一个脚本。...登录 shell 中,输入bash或者打开一个新的 Gnome 终端标签时,一个交互式非登录 shell启动了。...二、Bash 启动文件 当 Bash 作为交互式登录 shell 启动时,Bash 查找/etc/profile文件,并且如果文件存在,它会运行文件中的命令。...三、.bashrc 和 .bash_profile 的不同 在 Bash 作为一个交互式登录 shell 启动时,.bash_profile 被读取,并且执行,而.bashrc在交互式非登录 shell...bash_profile在交互式登录 shells 启动时,被读取和执行,而.bashrc在非登录 shells 启动时执行。

2.3K30
领券