如何从 Perl 脚本内部设置适用于其子脚本的 ulimit?

2023-11-21

我有一个 Perl 脚本,可以执行各种安装步骤来为我们公司设置开发盒。它运行各种shell脚本,其中一些脚本由于低于要求而崩溃ulimits(具体来说,堆栈大小-s就我而言)。

因此,我想设置一个ulimit这将适用于所有脚本(children)从我的主 Perl 中开始,但我不确定如何实现这一点 - 任何从脚本中调用 ulimit 的尝试都只会将其设置在特定的子 shell 上,该子 shell 会立即退出。

我知道我可以打电话ulimit在运行 Perl 脚本或使用之前/etc/security/limits.conf但我不希望用户知道任何这些 - 他们应该只知道如何运行脚本,脚本应该为他们处理所有这些事情。

我也可以跑ulimit每次我运行命令时,就像这样ulimit -s BLA; ./cmd但我不想每次都重复这个,我觉得有更好、更干净的解决方案。

另一个疯狂的“解决方法”是制作一个名为 BLA.sh 的包装脚本,它将设置 ulimit 并调用 BLA.pl,但同样,这在我看来是一个黑客,现在我有 2 个脚本(我什至可以制作 BLA.pl使用“ulimit -s BLA; ./BLA.pl --foo”调用自身,并根据是否看到 --foo 采取不同的行为,但这比以前更黑客)。

最后,显然我可以安装 BSD::Resource 但我想避免使用外部依赖项。

那么什么是THE如何从 Perl 脚本中设置 ulimit 并使其适用于所有子项?

谢谢。


您已经回答了您的问题:使用BSD::资源.

Perl 核心中没有任何东西可以与setrlimit。如果您不能(或不会)使用标准方法,那么您必须使用 hack。您已经描述过的任何方法都可以。 (请注意,您可以创建一个子例程来前置ulimit -s BLA;每个命令,然后使用该子命令而不是system.)

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

如何从 Perl 脚本内部设置适用于其子脚本的 ulimit? 的相关文章

  • 无法声明接口:资源繁忙

    我正在使用 USB4Java 低级版本 并且基本上是根据这段代码工作的here http www mets blog com java usb communication usb4java 我在 Ubuntu 中工作 遇到了有关权限的问题
  • 32 位 x86 汇编中堆栈对齐的职责

    我试图清楚地了解谁 调用者或被调用者 负责堆栈对齐 64 位汇编的情况相当清楚 它是由caller 请参阅系统 V AMD64 ABI 第 3 2 2 节栈帧 输入参数区域的末尾应按 16 对齐 32 如果 m256 在堆栈 字节边界上传递
  • 如何在 Perl 中将数组数据插入 MySQL?

    我用下面的脚本解析一个文本文件 如何将数组数据插入到MySQL表中 我已经学习了 Perl MySQL DBI 连接方法 我可以成功连接到本地 MySQL 数据库 我可以使用 MySQL 命令行创建表 C Perl bin perl exe
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • SSD 上的 MySQL 基准测试:工具和策略

    我目前正在将我的服务器从在硬盘驱动器上运行 MyISAM 切换到在 SSD 上运行 InnoDB 我有一个3 800 000 行 16GB 表作为基准表 我的服务器设置 Ubuntu 64 Nginx MySQL 5 5 我心里有两件事我想
  • ngx_http_brotli_filter_module.so" 与 /etc/nginx/nginx.conf:1 中的二进制不兼容

    Using Nginx 1 17 3 and Nginx 1 14 0在两台独立服务器上的 Ubuntu 18 上 两者都显示相同的错误ngx http brotli filter module so is not binary compa
  • exsl:xsl:if 块中的文档

    这是我的用例的简化版本 1 我有一个转换xsl文件 如下
  • Perl - Win32 - 如何从另一个进程非阻塞读取文件句柄?

    我正在编写一些通过 STDIN 与客户端进程通信的服务器代码 我正在尝试编写一段 Perl 代码 用于异步接收来自客户端 STDOUT 的响应 代码的阻塞版本可能如下所示 sub read from client my file handl
  • 如何在Template工具包中检测数组类型? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要在模板工具包中检测数组类型附件的一些变量 有最佳实践吗 可以定义一个自定义虚拟方法 该方法返回所提供变量的引用类型 粗略的例子 usr
  • 如何删除警告:link.res包含输出部分;你忘了-T吗?

    我正在使用 fpc 编译器 我想删除此警告 我已经阅读了 fpc 的选项 但我找不到如何做到这一点 这可能吗 当我运行命令时出现 fpc foo pas out 目标操作系统 Linux for i386 编译 foo pas 链接 p2
  • 使用 localinstall 更新 yum 包

    如果使用安装包yum 本地安装像这样 yum y localinstall nogpgcheck some package 1 0 0 rpm 现在 如果我尝试运行 yum y localinstall nogpgcheck some pa
  • 需要一种临时重定向 STDOUT 的方法

    我知道如何在 Linux 中重定向输出 问题是 我的 bash 脚本中有很多输出 我不想输入类似的内容 echo foo gt gt bar 一遍又一遍地 我更愿意做这样的事情 hey bash for the time being put
  • 将 React 应用程序作为后台进程运行

    我对部署前端代码完全陌生 因此提出了这个问题 我有一个 React 应用程序 需要作为后台进程运行 但是我对如何执行此操作有点困惑 我运行一个 npm 脚本 npm run build 在服务器上构建 缩小和服务项目 构建过程的相关代码是这
  • 如何在 Linux 上的 php 中启用 --enable-soap?

    这就是问题所在 我在 Apache 上安装了 PHP 5 2 9 但无法升级 PHP 有没有办法在 PHP 5 2 9 中启用 SOAP PHP 手册中说 要启用 SOAP 支持 请使用 enable soap 配置 PHP 这根本没有帮助
  • 如何覆盖 Template Toolkit 模板文件中的 WRAPPER?

    有没有办法禁用WRAPPER那是设置在新的 配置 http search cpan org dist Template Toolkit lib Template pm 通过模板或临时覆盖parse 我想要一个默认值WRAPPER 我将用于
  • Linux/UNIX 中 COM 编程的模拟

    组件对象模型 COM 是 或者曾经是 Windows 中提供语言中立的软件组件的方式 Linux UNIX 中是否有任何编程模型具有与通过二进制组件重用代码相同的理念 Sun RPC http en wikipedia org wiki R
  • GCC 为什么以及如何编译缺少 return 语句的函数?

    考虑 include
  • dlclose() 不卸载链接到 boost 的 .so 文件

    如果我的应用程序加载 使用 dlopen 一个链接到 Boost 测试框架的 so 文件 我无法卸载该 so 文件 如果没有链接到 boost 卸载它似乎就可以了 应用程序文件main cpp include
  • 替换字符串中的重复字符串

    我正在尝试查找 并替换 字符串中重复的字符串 我的字符串可以是这样的 Lorem ipsum dolor 坐阿梅特坐 阿梅特坐 阿梅特坐诺斯特鲁德实习amit situllamco Laboris nisi ut aliquip ex ea
  • 在 Linux 上用 C 跟踪键盘和鼠标事件

    如何在 Linux 中用 C 语言跟踪键盘或鼠标事件 Like for example if the user presses ESC Shift etc I should be able to track it Same way for

随机推荐

  • PowerShell 脚本在粘贴到 PowerShell 窗口时运行,但在从快捷方式运行时不运行

    我正在尝试编写一个脚本 将多个 Excel 文件转换为 PDF 文件 我找到了一个有效的在线链接 path Read Host Prompt Input Directory Path and Press Enter xlFixedForma
  • 在第一个匹配之前插入行的命令

    我有包含以下信息的文件 testing testing testing 我想使用 sed 或任何 Linux 命令在第一个测试单词之前插入一个单词 已测试 需要得到类似的输出 tested testing testing testing T
  • 如何从 Android 中选择唯一的联系人

    我想选择独特的联系方式从 Android 只显示有电话号码的联系人 我正在使用这个代码 ContentResolver cr getContentResolver Cursor cur cr query ContactsContract C
  • 从命令行导出/导入 Visual Studio 设置

    如何从命令行或使用 C 导出 导入 VS 2010 2012 设置 不借助 GUI 自动化是否有可能 你可以实现import通过提供一个设置文件 ResetSettings争论 devenv ResetSettings c full pat
  • 如何从 IntelliJ IDEA 中运行 sbt 组装任务?

    是否可以运行sbt组装从 IntelliJ IDEA 内部 我还在文档中读到可以在 SBT 工具窗口中添加任务 但我看到它只能帮助你查看你的项目而不是任务 我无法在那里添加任何任务 工具窗口到底是如何工作的 我有最新版本的 IntelliJ
  • 并行计算时如何写出日志?如何调试并行计算?

    我发现如果并行计算期间有多个打印函数 则只有最后一个会显示在控制台上 所以我设置了outfile选项 希望我能得到每次打印的结果 这是 R 代码 cl lt makeCluster 3 type SOCK outfile log txt a
  • 使用 printf 格式的变量

    假设我有一个这样的文件 cat a hello this is a sentence and this is another one 我想打印前两列 并在它们之间添加一些填充 由于这个填充可能会改变 我可以使用7 awk printf 7
  • 什么 Series 方法取代了 searchsorted?

    在他的视频中 使用 pandas 使用 Python 进行数据分析 http youtu be w26x z BdWQ t 2h14s Wes McKinney 提出了一个名为 searchsorted 的序列方法 它给定一个值 返回该序列
  • 我们可以通过 Android 应用程序在 Google plus 上发帖吗?

    我们如何集成我们的 Android 应用程序以在 Google Plus Walls 上发布数据 如果有人知道如何执行此操作 请向我提供 API 和用于发布数据的示例代码 使用 Android 应用程序在 google plus wall
  • 具有旋转动画的 CALayer

    我屏蔽了这样的图像 UIView maskImage maskImage UIView alloc init maskImage backgroundColor UIColorFromRGB FTRMaskColor maskImage f
  • Heroku 工具带更新失败

    我正在尝试让 Heroku 工具带正常工作 但这完全是一场噩梦 安装成功运行 但是当我运行 heroku update 时 我得到 heroku update failed undefined method output with arro
  • 为什么projectableNodes是any[][]?

    我玩过 ViewContainerRef createComponent 我想知道为什么参数projectableNodes是一个any 不幸的是 到目前为止 这个参数还没有被记录下来 在这个二维数组中传递什么 祝愿 曼弗雷德 因为我们可以
  • Meteor 服务器端 /public 的路径是什么?

    在 Meteor 客户端 我知道项目公共目录中的文件是在 处引用的 服务器端如何引用它们 我正在尝试使用 fs readdir 获取目录列表 但我不知道如何构造路径以到达相当于客户端 images gallery 的服务器端 有什么建议吗
  • ASP.NET 5 (MVC6) 中请求 BinaryRead

    我让这段代码在 ASP NET MVC 5 中工作 但我无法使其在 ASP NET MVC 6 ASP NET 5 中工作 有人能帮我吗 public EmptyResult PayPalPaymentNotification PayPal
  • cordova-plugin-media 回调方法

    我正在使用 cordova media plugin 1 0 1 在 Ionic 移动应用程序中 我正在使用该插件来播放音频文件 我可以使用以下方法让它播放 var media cordovaMedia newMedia fileToPla
  • php 中的 rand() 与时间相关吗?

    让我们解释一下我的意思 前段时间 在用c 编写程序时 犯了以下错误 int Randomize Random r new Random return r Next 0 10 在c 中 这是一个错误 因为连续调用多次 该函数将返回相同的值 这
  • 角度重定向到登录页面

    我来自 Asp Net MVC 世界 其中尝试访问未经授权的页面的用户会自动重定向到登录页面 我正在尝试在 Angular 上重现这种行为 我遇到了 CanActivate 装饰器 但它导致组件根本不渲染 没有重定向 我的问题如下 Angu
  • 使用 Windows 的 R 中的文件路径问题(“字符串中的十六进制数字”错误)

    我在 Windows 上运行 R 并在桌面上有一个 csv 文件 我按如下方式加载它 x lt read csv C Users surfcat Desktop 2006 dissimilarity csv header TRUE 但 R
  • “jQuery”变量如何成为函数和对象?

    例如 当您使用jQuery someDiv 这是一个函数 但你也可以使用jQuery ajax 这怎么可能 在 JavaScript 中 函数本身就是对象 var x function x foo bar console log x foo
  • 如何从 Perl 脚本内部设置适用于其子脚本的 ulimit?

    我有一个 Perl 脚本 可以执行各种安装步骤来为我们公司设置开发盒 它运行各种shell脚本 其中一些脚本由于低于要求而崩溃ulimits 具体来说 堆栈大小 s就我而言 因此 我想设置一个ulimit这将适用于所有脚本 children