Ubuntu:等待网络连接并执行 bash 命令

2023-12-12

在Ubuntu(最新的发行版很好)中,我想重新启动路由器,并在bash脚本中我想要一个命令来等待网络链接再次启动,当它检测到这一点时,它必须启动bash 命令。

我可以通过某种轮询循环来实现这一点,但理想的解决方案是使用一个 bash 命令,该命令在执行时等待链接启动并自动执行我提供给它的 bash 命令。

我读过一些有关 dbus 的内容(dbus 似乎是可行的方法),但似乎也需要太多时间才能完全理解如何正确使用它。有人建议我检查像 ethtool 这样的工具是否能够执行这种“等待并执行”,但在手册页中我没有找到任何有关它的信息。

注意:我忘了说我想要命令来检查链路的物理层是否已启动。因此,在上层工作的解决方案不被接受。此外,涉及将脚本放入目录(例如/etc/network/if-up.d)中的解决方案也不被接受。


有任何想法吗?

谢谢


我建议的事件监听器:

inotifywait -e modify /sys/class/net/eth0/carrier; echo 'Change detected'

当您插入或拔出网络电缆时,它会触发回显“检测到更改”,当然它可能会触发任何事情。

这将一次性运行,但我想你知道如何用它创建一个守护进程,如果没有,这将是一个很好的学习练习:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu:等待网络连接并执行 bash 命令 的相关文章

  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • Cmake 错误未定义对“pthread_create”的引用

    我对 cmake FindThreads 进行了测试 这是我的源代码test cpp和CMakeLists txt include
  • 我应该如何从非 root Debian Linux 守护进程登录?

    我正在编写一个新的守护进程 它将托管在 Debian Linux 上 我发现 var log 具有仅 root 写入权限 因此我的守护进程无法在那里写入日志文件 但是 如果它写入那里 它似乎将获得自动日志轮转 并且也按照用户期望的方式工作
  • sed:用匹配的模式替换第 n 个单词?

    我有一个具有以下特征的文本文件 每行至少有三个由空格分隔的 单词 单词 可以是任何字符或字符串 我在一些行中附加了一些注释 并提出了对原始单词进行更改的初步建议 现在想使用 sed 为我进行这些更改 因此 为了提供更清晰的图片 我的文件如下
  • Linux 是否允许从信号处理程序进行任何系统调用?

    我的理解是 一般来说 如果您从信号处理程序调用非异步信号安全函数 则行为是未定义的 但我听说 Linux 允许您安全地调用任何系统调用 这是真的 另外 SIGSEGV 处理程序的唯一可移植行为是中止或退出 但我知道如果返回 linux 实际
  • 如何为Z3设置Java开发环境

    如何为Z3 SMT求解器设置Java开发环境 Note 作者撰写并回答 请参阅我可以回答我自己的问题吗 https stackoverflow com help self answer Z3 是一个带有 Java 绑定的 C 应用程序 首先
  • python中的多服务器监控/自动重启

    我有 2 个服务器程序 必须使用 GNU Screen 启动 我想使用基于 Python 的程序来强化这些服务器 防止崩溃 该程序启动每个屏幕会话 然后监视服务器进程 如果服务器进程崩溃 我需要 python 代码来终止无关的屏幕会话并再次
  • 如何配置和采样英特尔进程内性能计数器

    简而言之 我试图在用户级基准测试进程中实现以下目标 伪代码 假设 x86 64 和 UNIX 系统 results for iteration 0 iteration lt num iterations iteration pctr sta
  • 通过 SSH 隧道访问 LDAP

    我通过 SSH 根访问 访问了客户办公室网络内的一台机器 我正在我的计算机上编写一个需要集成到 LDAP 的 PHP 应用程序 LDAP 服务器位于我客户网络的另一台服务器中 并且not可以从外部访问 但是我可以通过可以通过 SSH 连接的
  • Glassfish 4 服务器意外停止

    我是 GlassFish 和一般应用程序服务器的新手 我有一个运行 Ubuntu 的 Amazon EC2 实例 并安装了 GlassFish 4 它启动时没有问题 但过了一会儿 GlassFish 服务器就自行关闭了 我查看了 serve
  • 如何在 Tomcat 6 中合理配置安全策略

    我使用的是为 Ubuntu Karmic 打包的 Tomcat 6 0 24 Ubuntu 的 Tomcat 软件包的默认安全策略相当严格 但看起来很简单 在 var lib tomcat6 conf policy d 有多种建立默认策略的
  • 使用 Python for Linux 模拟按键事件

    我正在编写一个脚本来自动运行特定模型 当模型失败时 它会等待用户输入 Enter 键 我可以检测到模型何时失败 但我无法使用 python 在 Linux 上 来模拟按键事件 Windows 有 SendKeys 库来执行此操作 但我想知道
  • 在Linux服务器中安装ZLIB

    我要安装ZLIB http www techsww com tutorials libraries zlib installation installing zlib on ubuntu linux php在Linux服务器中 我的服务器帐
  • Vagrant 无法转发此虚拟机上的指定端口

    我将 Vagrant 用于一盒配置文件 现在我想对另一个盒子 b2 使用 Vagrant 但它说 bioiq 的实例正在消耗转发的端口 2222 确实如此 现在 如果我使用以下配置 b2 Vagrant 仍然尝试使用 2222 Vagran
  • 检测目录中是否有某些内容被修改,如果是,则备份 - 否则不执行任何操作

    我有一个 数据 目录 我通过 shell 脚本定期同步到远程 NAS 但是 我想让这变得更有效率 我想在运行 rsync 之前检测 数据 中是否发生了变化 这样我就不会不必要地唤醒 NAS 上的驱动器 我正在考虑修改 shell 脚本以获取
  • Shell脚本通过curl调用API并处理响应

    我需要创建一个通过curl 调用我的登录API 的shell 脚本 该脚本应该能够存储和处理来自curl api 调用的响应 myscript sh bin bash echo Extract bearer token from curl
  • 错误:选项“Z”仅在夜间编译器上被接受[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在通过斯坦福操作系统课程 cs140e https web stanford edu class cs140e 其中一个问题是 有一个名
  • Bash:将输出传输到后台进程?

    我想将一个进程放入后台 然后多次将数据传递给它 例如 cat The command I want to write into cat pid Getting the process id of the cat process echo h
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • Linux 堆栈大小

    我正在寻找 Linux 内核中堆栈的良好描述 但我发现找到任何有用的东西出奇地困难 我知道大多数系统的堆栈限制为 4k 而其他系统则限制为 8k 我假设每个内核线程 下半部分都有自己的堆栈 我还听说 如果中断发生 它会使用当前线程的堆栈 但

随机推荐

  • 使用 NEST C# 在 Elastic Search 中使用多个索引进行全文搜索

    我正在尝试使用 NEST 客户端搜索多个索引 Elasticsearch 我只需点击以下链接 叠加帖子 如何使用 Nest ElasticSearch 在多个索引内进行搜索 唯一的区别是我的索引已经存在但没有返回 示例代码 using Sy
  • 单击子元素也会触发其父元素的单击事件[重复]

    这个问题在这里已经有答案了 Scenario 我的主干应用程序中的视图由几个部分组成boxes which are div elements 当用户单击一个框并按住鼠标按钮 500 毫秒时 我想显示一个delete左上角的按钮 当用户点击其
  • C++ 委托构造函数

    你好 我对 Java 比 C 更熟悉 test h class Test private int a b c public Test int a int b int c test c Test Test int a int b int c
  • 如何使用 FTP 下载 R 包

    我需要在无法访问 Internet 的 Windows 7 PC 上支持 R 环境 我想下载 最终下载到 DVD 所有 5 000 个软件包的当前版本 以供这台 PC 上的 R 用户使用 是否有 FTP 脚本或其他好方法来下载 R 包的所有
  • 如何每500ms获取一次相机预览帧

    我正在开发示例应用程序 它通过 android 中的相机为我提供指向图像或对象的颜色代码 我的应用程序与此应用程序类似 我正在使用this为此的应用程序代码 使用此应用程序代码 我可以连续获取相机预览帧 并为我提供当前预览帧的颜色代码 我想
  • NotificationHub推送通知返回:从Token Provider获取的Token错误

    我有 Wp8 1 Silverlight 应用程序 它从 Mobileservice 旧的 azure 服务 接收推送通知 WNS 因此 由于新功能 我想更新到新服务 我现在已经创建 升级了一个新服务器以使用应用程序服务 移动应用程序 并使
  • 使用 Grand Central Dispatch,我如何检查是否有一个块已经在运行?

    我正在使用 GCD 从互联网上进行一些后台加载 除了一点缺陷之外 这效果很好 在我的应用程序中 我有 3 个选项卡 当单击任何选项卡时 GCD 开始为相应的选项卡进行后台加载 如果用户决定从第一个选项卡转到第二个选项卡 当 GCD 已开始下
  • 为什么这个 Powershell ForEach 循环每次迭代都会变慢?

    我的代码按预期工作 我真的很想知道是否有人知道为什么我下面描述的事情可能会发生 也就是说 如果有人有任何进一步优化日常工作的想法 我会本着每天都是上学日的精神感激地接受他们 该脚本正在查询我们所有的域控制器以获取最新的最后登录特定 OU 中
  • 为什么 PHP 需要显式引用“$this”来调用成员函数?

    差不多就这样了 大多数面向对象编程语言中的作用域可以很好地解析符号 而无需显式引用当前实例 即 PHP 中的 this 为什么 PHP 要求我在每次调用同一个类中的成员函数之前都加上 this 来解析函数调用的范围 考虑 this gt s
  • 为什么数据未绑定到我的 WPF 应用程序中的标签

    我正在做一个简单的DataBinding应用在WPF 在这个应用程序中 无论我输入什么TextBox named txtName 应该出现在Label 为此 我使用了绑定WPF 但它没有受到约束
  • 带有几个小数位的倒计时,在 Swift 中使用 NSTimer

    例如 我想制作一个具有从 10 0000000 开始的计时器的应用程序 并且我希望它能够完美倒计时 到目前为止 这是我的代码 import UIKit class ViewController UIViewController IBOutl
  • 如何列出 Google 云端硬盘文件夹的所有文件、文件夹、子文件夹和子文件

    有什么想法如何在单个查询中查询所有子项和子项的子项吗 Update 这似乎是一个简单的问题 我怀疑是否有一个简单的解决方案 查询文件夹和文件树可能会消耗大量 API 调用 因此 为了解决我的问题 我使用单个查询来列出所有者的所有文件和文件夹
  • 获取 Discord.JS 机器人的正常运行时间

    我现在正在为运行时创建一个 Discord 机器人命令 我想知道运行时最紧凑 且仍然正确 的方法是什么 以捕获机器人实际在线的时间并以 24 小时格式返回 您无需在机器人启动时手动保存 您可以使用client uptime你会得到多少毫秒机
  • window.location 和 document.location 有什么区别?

    window location 和 document location 有什么区别 它们都应该引用同一个对象吗 根据 W3C 的说法 它们是相同的 实际上 为了跨浏览器安全 您应该使用window location而不是document l
  • 模型更改后角度视图不更新

    我有一个简单的角度应用程序 可以使用下面的 JavaScript Web 音频对象来播放音频 应用程序组件 ts export class AppComponent title media player audio currentTime
  • 在egrep的正则表达式中管道bash输入参数

    这是我尝试运行的脚本 bin bash charlist 1 possible input cat wordlength 2 possible input 3 cat nounlist egrep b charlist b wordleng
  • Java&Mongo:获取字段存在的对象

    情况 我有文档集合 每个文档都包含这样的字段 id ObjectId userId String 但它也可以是字段 files Object 当我这样做时 final Query query new Query query fields i
  • 在R中通过grepl合并两个数据帧

    假设我有两个数据框 df1 lt data frame x c abc def ghi NA y 1 4 df1 x y 1 abc 1 2 def 2 3 ghi 3 4 NA 4 df2 lt data frame x c a i z
  • 如何检查MySQL连接是否经过SSL加密?

    我正在使用 MySQL 官方网站的 MySQL NET 连接器 我正在尝试从我的 C 程序到 Mysql 数据库建立安全的 SSL 连接 Mysql 服务器允许使用 SSL 连接 have ssl变量设置为yes and ca cert s
  • Ubuntu:等待网络连接并执行 bash 命令

    在Ubuntu 最新的发行版很好 中 我想重新启动路由器 并在bash脚本中我想要一个命令来等待网络链接再次启动 当它检测到这一点时 它必须启动bash 命令 我可以通过某种轮询循环来实现这一点 但理想的解决方案是使用一个 bash 命令