标签: nohup

我在注销后如何在Unix上运行Perl脚本?

我有一个需要很多时间才能完成的脚本.

我宁愿退出并稍后检索其输出,而不是等待它完成.

我试过了;

at -m -t 03030205 -f /path/to/./thescript.pl

nohup /path/to/./thescript.pl &

我还验证了这些进程实际存在psat -l依赖于我使用的调度语法.

当我退出shell时,这两个进程都会死掉.有没有办法在关闭连接时阻止脚本终止?

我们这里有crons并且它们已经设置好并且正常工作,但我想使用atnohup用于一次性脚本.

我的语法有问题吗?有没有其他方法可以产生预期的结果?


编辑:
我不能使用screendisown- 他们没有安装在我的HP Unix设置中,我也无法安装它们

scheduling keep-alive nohup at-job

1
推荐指数
2
解决办法
8579
查看次数

在nohup模式下运行时的不同行为(linux shell)

我尝试在linux shell中进行字符串替换,

str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
Run Code Online (Sandbox Code Playgroud)

它可以在我调用命令时执行:./ test.sh但是如果我在nohup模式下运行它,使用命令:nohup ./test.sh&

它说./test.sh:8:糟糕的替换

这有什么不对?

谢谢

linux shell nohup

1
推荐指数
1
解决办法
817
查看次数

nohup和sed,重定向stderr和stdout

在我的服务器上nohup sleep 1 > nohup.out &没有提供帮助信息.好.
在我的笔记本电脑上运行相同的命令,我得到:nohup: ignoring input and redirecting stderr to stdout.虽然命令仍然正常运行并完成,但我不明白为什么在我的两台机器之间报告此消息存在差异.幸运的是,我可以通过简单地将stderr和stdout重定向到文件来解决我的笔记本电脑上的这个问题:nohup sleep 1 &> nohup.out &

所以....我想要做的是在我的笔记本电脑上实现一个更有用的命令:

以下在我的服务器上工作正常,并且没有报告消息:
nohup ls -1 *.txt | sed -e "s%\(.*\)%/home/user/scripts/script.pl -find \1 %" | sh > nohup.out &

这行代码"nohups"将一个文件管道列表导入到sed中,它们script.pl连续运行并在shell中执行.script.pl将数据打印到多个文件,并将一些信息打印到stdout.我通过将其写入名为的文件来捕获此信息nohup.out

现在,当我在笔记本电脑上运行这个单行时,我明白了nohup: ignoring input and redirecting stderr to stdout.这是预期的(但由于我不知道的原因).但是当我修改行重定向stderr和stdout时:
nohup ls -1 *.txt | sed -e "s%\(.*\)%/home/user/scripts/script.pl -find \1 %" | sh &> nohup.out &

我仍然得到消息 nohup: ignoring input and redirecting …

unix bash sed pipe nohup

1
推荐指数
1
解决办法
2万
查看次数

Nohup在Ubuntu EC2中运行Silenium Webscraper

我有一个使用硒的网络刮板,我想在注销后在后台事件中在Ubuntu EC2上运行,所以我尝试使用nohup。我当前的代码是:

webscrape.py

from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC 

def main():

    display = Display(visible=0, size=(800, 600))
    display.start() #starts vitual display

    driver = webdriver.Firefox()

    ...do the webscraping...

    driver.close()
    display.stop()

if __name__ == "__main__": main()
Run Code Online (Sandbox Code Playgroud)

当我登录EC2并python webscrape.py正常运行时。但是,当我nohup python webscrape.py注销时,它停止了。在nohup.out日志中,出现以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/Cruz/Scripts/WebScrape/google_brand_web_scraper.py", line 175, in …
Run Code Online (Sandbox Code Playgroud)

python amazon-ec2 nohup web-scraping xvfb

1
推荐指数
1
解决办法
400
查看次数

内置nohup的脚本无法正确退出

我们有脚本进行一些处理并使用nohup在后台触发作业.当我们从Oracle OEM安排此脚本(或者它可以是任何调度程序作业)时,我看到以下错误并显示状态为失败,但脚本实际上没有问题.使用nohup启动备份地面作业时如何正确退出脚本?

Remote operation finished but process did not close its stdout/stderr
Run Code Online (Sandbox Code Playgroud)

file:test.sh

#!/bin/bash
# do some processing
...
nohup ./start.sh 2000 &

# end of the script
Run Code Online (Sandbox Code Playgroud)

bash shell nohup

1
推荐指数
1
解决办法
8156
查看次数

如何在nohup中使用`while true`?

我想在远程Ubuntu PC(AWS)上运行脚本.

while true; do timeout 1h python worker.py --log-level=ERROR; done
Run Code Online (Sandbox Code Playgroud)

效果很好,但是当我添加nohup:

nohup while true; do timeout 1h python worker.py --log-level=ERROR; done &
Run Code Online (Sandbox Code Playgroud)

它返回错误-bash: syntax error near unexpected token 'do'.

什么是正确的语法?

bash ubuntu nohup

1
推荐指数
1
解决办法
2441
查看次数

在unix后台运行python脚本

我有一个 python 脚本,我想在我的 unix 服务器的后台执行。问题是我需要 python 脚本等待上一步完成,然后才能进入下一个任务,但我希望我的工作在退出后继续运行。

我想我可以设置如下,但想确认:

脚本的摘录如下所示,其中命令 2 依赖于命令 1 的输出,因为它在同一目录中输出一个已编辑的可执行文件。我想指出的是,命令 1 和 2 没有包含 nohup/&。

subprocess.call('unix command 1 with options', shell=True)
subprocess.call('unix command 2 with options', shell=True)
Run Code Online (Sandbox Code Playgroud)

如果当我像这样启动我的 python 脚本时:

% nohup python python_script.py &
Run Code Online (Sandbox Code Playgroud)

我的脚本是否会在后台运行,因为我明确没有将 nohup/& 放在我的脚本 unix 命令中,而是在后台运行 python 脚本?

python unix subprocess nohup

1
推荐指数
1
解决办法
2万
查看次数

通过nohup运行ruby脚本时,为什么不将写入内容写入nohup.out

我正在尝试使用运行ruby脚本nohup

nohup ruby​​ script.rb和

这需要几个小时才能运行,但是会通过记录其进度puts

通常,我可以查看nohup.out以查看使用nohup运行的任何内容的最新输出。但是,我的ruby脚本在完成或被杀死之前似乎不会输出任何内容。

我究竟做错了什么?

ruby linux ubuntu nohup

1
推荐指数
1
解决办法
338
查看次数

如何对已在后台运行的进程使用 nohup

所以我有一个作业在我的 unix 终端上后台运行,我将不得不在一段时间后关闭 ssh 终端,并且我的作业也必须在那之后继续。我如何使用 nohup 或任何其他可能的选项来实现此目的。

unix linux nohup

1
推荐指数
1
解决办法
2287
查看次数

当应用程序可以作为系统服务运行时,为什么要使用nohup?

我将这个问题放在stackoverflow上,因为我已经在这里找到了很多有关该主题的问题。

简短介绍

简单地说,nohup可用于在后台运行应用程序,并在用户注销或关闭终端或ssh会话后保持其运行,例如

这里有很多关于stackoverflow的示例问题,例如thisthat

我的问题很简单。

为什么选择了nohup,当有类似的选项upstartsystemd......其管理的应用作为服务于更方便的方式(运行级别,...)?

阅读有关相似主题的许多问题,唯一的选择似乎是nohup。几乎从来没有答案是这样的:“ ...使用暴发户脚本,因此一切都由您完成...”


我主要使用eg upstart,除了可能用于快速而肮脏的测试场景。

我缺少重要的东西吗?

linux bash upstart nohup systemd

0
推荐指数
1
解决办法
4268
查看次数

Nohup 运行 python 程序

我正在本地计算机上使用装有 CentOS 的远程服务器,

我希望它运行以下代码:

nohup python3 search_large_files.py &
Run Code Online (Sandbox Code Playgroud)

然而,它并没有像我预期的那样工作

[root@iz2ze9wve43n2nyuvmsfx5z ~]# ps ax| grep nohup
29360 pts/1    R+     0:00 grep --color=auto nohup
Run Code Online (Sandbox Code Playgroud)

我如何利用 nohup 来运行我的 python 代码,以便我可以在服务器工作时关闭电源并进入睡眠状态。

python nohup

0
推荐指数
1
解决办法
1424
查看次数

该日志文件是什么格式?有没有办法转换它?

这可能是一个毫无意义的问题,但由于我不知道要搜索什么以及如何搜索,所以我决定向公众提出这个问题。如果您认为这个问题需要改进或需要更多信息,请发表评论。我会尽力尽快回复并编辑。

我有一个简单的 Go 程序,它使用名为Zerolog 的三十方日志库并打印日志。

package main

import (
    "os"
    "time"

    "github.com/rs/zerolog"
    "github.com/rs/zerolog/log"
)

func init() {
    zerolog.SetGlobalLevel(zerolog.DebugLevel)
    zerolog.TimeFieldFormat = zerolog.TimeFormatUnixMs
    log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339Nano})
}

func main() {
    log.Debug().Msg("This if debugging message")
    log.Info().Msg("This is information message")
}

Run Code Online (Sandbox Code Playgroud)

如果您只是使用 运行该程序$ go run main.go,它会打印出以下结果。

2021-06-23T12:45:29.409Z DBG This if debugging message
2021-06-23T12:45:29.41Z INF This is information message
Run Code Online (Sandbox Code Playgroud)

但是,如果我用来nohup运行这个程序$ nohup go run main.go &,那么它会创建一个名为 的输出文件nohup.out并写入不同的日志格式。这是为什么?

[90m2021-06-23T12:59:37.755Z[0m [33mDBG[0m This if debugging message
[90m2021-06-23T12:59:37.756Z[0m …
Run Code Online (Sandbox Code Playgroud)

format go nohup logfile

0
推荐指数
1
解决办法
1365
查看次数