【发布时间】:2016-02-04 19:43:29
【问题描述】:
我有一个脚本需要很长时间才能运行,因为它必须处理数千个文件。我想让这个脚本尽可能地万无一失。为此,我想检查用户是否使用 nohup 和 '&' 运行了脚本。前任。
me@myHost:/home/me/bin $ nohup doAlotOfStuff.sh &。我想 100% 确定脚本是使用 nohup 和 '&' 运行的,因为如果脚本因任何原因在中间死掉,这将是一个非常痛苦的恢复过程。
如何检查脚本本身中的这两个关键参数?如果它们丢失了,我怎样才能在脚本运行得更远之前停止脚本,并向用户抱怨他们错误地运行了脚本?更好的是,有没有办法强制脚本在 nohup & 中运行?
编辑:服务器环境是 AIX 7.1
【问题讨论】:
-
请问您为什么不使用
screen或tmux? -
它们基本上是终端多路复用器。它们允许您在远程计算机(或本地计算机)中打开一个分离的会话。我强烈建议使用其中之一。
screen更简单,而tmux更强大。 -
嘿,我不小心删除了我之前的评论。这些命令在 AIX 中不起作用,这是我的服务器环境。另外,我觉得好像这不是问题的根本原因。我想让它即使是最愚蠢的用户也不能把脚本弄乱=)
-
一种简化的方法是为您的命令创建一个
alias,类似于alias doAlotOfStuff='nohup doAlotOfStuff.sh &' -
使用正确的命令(nohup 等)编写包装脚本并将该脚本传递给用户。