标签: nohup

nohup 不适用于 Chromium

我正在制作一个小的 shell 脚本,在启动后启动各种程序。我用于dialog制作菜单,然后制作运行所需应用程序的简单 case 语句。除了我最喜欢的 Chromium 浏览器之外,一切都很完美。

nohup chromium &不起作用 - 当我关闭终端时 Chromium 也会关闭。

这是我的脚本:

selection=`dialog --menu "Choose a session:" 20 50 10 "Surfing" "" "Surfing (blank)" "" "Programming" "" "Gaming" "" "Nothing" "" --stdout`

case "$selection" in
    "Surfing" )
        nohup chromium http://www.facebook.com &
        nohup chromium http://www.twitter.com &
        nohup chromium http://reader.google.com &
        nohup chromium http://plus.google.com &
        nohup chromium http://www.youtube.com &
        nohup chromium http://www.reddit.com &
        nohup chromium http://mail.google.com &

        nohup sonata &
        mpc play &
        ;;
    "Surfing (blank)" …
Run Code Online (Sandbox Code Playgroud)

linux bash nohup chromium

5
推荐指数
2
解决办法
1815
查看次数

bash -c像nohup一样工作吗?

在使用redhat中的旧脚本时,我遇到了类似的行

daemon --user $USER --pidfile $PIDFILE "cmd >>/var/log/cmd.log 2>&1 &"

它似乎是可疑的,因为它不使用nohup.但是程序正常工作,即使退出控制终端也能保持运行.进一步调查我发现,bash -c 'sleep 1000&'即使调用它的终端退出(例如,没有nohup也不可能),命令例如似乎保持不变.我用最新的ubuntu验证了这种行为.

所以我的问题是,这种行为是众所周知的吗?也就是说,我可以在我的init脚本中使用它而不是使用nohup吗?或者它是bash中的错误?

bash daemon nohup

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

nohup 与双与号 (&&) 而不是分号 (;) 一起使用时不起作用

我有一个脚本,用于ssh登录远程机器、cd特定目录,然后启动守护程序。原始脚本如下所示:

ssh server "cd /tmp/path ; nohup java server 0</dev/null 1>server_stdout 2>server_stderr &"
Run Code Online (Sandbox Code Playgroud)

此脚本似乎工作正常。但是,对于用户输入错误路径导致cd失败的情况并不稳健。由于 ,即使失败;,此命令也会尝试运行该nohup命令cd

明显的修复不起作用:

ssh server "cd /tmp/path && nohup java server 0</dev/null 1>server_stdout 2>server_stderr &"
Run Code Online (Sandbox Code Playgroud)

也就是说,SSH 命令在服务器停止之前不会返回。放在nohup前面cd而不是前面java没有用。

谁能帮我解决这个问题?你能解释为什么这个解决方案不起作用吗?谢谢!

编辑: cbuckley 建议使用sh -c,我从中得出:

ssh server "nohup sh -c 'cd /tmp/path && java server 0</dev/null 1>master_stdout 2>master_stderr' 2>/dev/null 1>/dev/null &"
Run Code Online (Sandbox Code Playgroud)

但是,现在退出代码总是0cd失败时;而如果我这样做了,ssh server cd /failed/path …

bash nohup

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

在bash中,如何为后台进程命令输入密码?

我正在尝试从dreamhost到另一台主机进行rsync备份,这是我想要使用的命令:

nohup rsync -e"/ usr/bin/ssh"--bwlimit = 2000 -av username@server.dreamhost.com:remote_directory local_directory&

我希望这个过程能够在后台继续运行,即使我断开连接也是如此.问题是,我不知道如何在后台进程时输入密码.我该怎么做呢?

linux bash nohup

5
推荐指数
2
解决办法
4124
查看次数

使用 nohup 开始时如何将参数传递给 python 脚本

我需要使用 nohup 传递一个参数来使用 bash 启动一个 python 脚本,该参数有助于在我导入的脚本中定义一个常量。关于传递 args 有很多问题,但我还没有找到使用 nohup 的成功方法。

我的 bash 脚本的简化版本:

#!/bin/bash

BUCKET=$1
echo $BUCKET
script='/home/path/to/script/script.py'
echo "starting $script with nohup"
nohup /usr/bin/python $script $BUCKET &
Run Code Online (Sandbox Code Playgroud)

我正在导入的配置脚本的相关部分:

FLAG = sys.argv[0]
if FLAG == "b1": 
    AWS_ACCESS_KEY_ID = "key"
    BUCKET = "bucket1" 
    AWS_SECRET_ACCESS_KEY = "secret"
elif FLAG == "b2": 
    AWS_ACCESS_KEY_ID = "key"
    BUCKET = "bucket2"
    AWS_SECRET_ACCESS_KEY = "secret"
else:
    AWS_ACCESS_KEY_ID = "key"
    BUCKET = "bucket3"
    AWS_SECRET_ACCESS_KEY = "secret"
Run Code Online (Sandbox Code Playgroud)

使用它的脚本:

from config import BUCKET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY

#do stuff with the …
Run Code Online (Sandbox Code Playgroud)

python bash nohup

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

Nohup:无法与控制台分离

我有一个可以在Linux和Mac OS X上运行的bash脚本。脚本的某一行与Linux中的一样,但在OS X中不起作用。

nohup <utility> <arg> > output.txt 2> error.txt </dev/null &
Run Code Online (Sandbox Code Playgroud)

当bash脚本在Linux中运行时,它就像一个超级按钮。但是,在OS X中运行bash脚本时,出现错误

nohup: can't detach from console: Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)

我已经做了很多搜索,但是还没有找到合适的答案来说明为什么这样。

正在执行的脚本早于退出<utility>,这就是为什么(据我所知)我需要使用的原因nohup。但是,我已经进行了一些测试,nohup从bash脚本的行中删除似乎可以解决问题,因为这两个系统上的实用程序都将启动,并且即使脚本退出后仍可以继续运行。

linux macos bash nohup

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

不使用 nohup + ps aux grep + kill 启动/停止后台 Python 进程

我通常使用:

nohup python -u myscript.py &> ./mylog.log &       # or should I use nohup 2>&1 ? I never remember
Run Code Online (Sandbox Code Playgroud)

启动一个后台 Python 进程,即使我退出,我也想继续运行该进程,并且:

ps aux |grep python
# check for the relevant PID
kill <relevantPID>
Run Code Online (Sandbox Code Playgroud)

它有效,但执行所有这些步骤很烦人。

我已经阅读了一些需要将 PID 保存在某个文件中的方法,但这更麻烦。


是否有一种干净的方法可以轻松启动/停止 Python 脚本?喜欢:

startpy myscript.py             # will automatically continue running in
                                # background even if I log out

# two days later, even if I logged out / logged in again the meantime
stoppy myscript.py
Run Code Online (Sandbox Code Playgroud)

或者这个长的部分nohup python -u myscript.py &> …

python linux bash nohup

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

Nohup和Python -u:它仍然不会实时记录数据

在后台启动Python进程时,用

nohup python myscript.py > test.log 2>&1 < /dev/null &
Run Code Online (Sandbox Code Playgroud)

问题是stdout缓冲:数据不是实时写入的test.log.以常见的解决办法这个问题定时冲洗sys.stdout.flush(),甚至更好,因为提出这个答案,使用python -u:

nohup python -u myscript.py > test.log 2>&1 < /dev/null &
Run Code Online (Sandbox Code Playgroud)

但这还不够.我注意到它在几个小时内工作,然后,它停止工作,即几个小时后test.log不再实时写入,即使我使用过nohup python -u ....

1)这是如何重现问题(我有一个标准的Debian Jessie).启动此文件:

import time
import datetime
while True:
    print datetime.datetime.now()
    time.sleep(60)
Run Code Online (Sandbox Code Playgroud)

nohup python -u myscript.py > test.log 2>&1 < /dev/null &.日志文件将在几个小时内更新,然后在3或4小时后更新,不再有任何内容.

2)如何解决这个问题,而不必stdout.flush()在代码中插入每两行(丑陋的解决方案)?

python stdout nohup

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

nohup 无法正常工作

我有一个非常简单的 bash 脚本。我希望这个 bash 脚本在我从终端注销后继续运行,因为它正在监视一些服务。但是,我遇到的问题是,一旦我退出终端,进程就会终止。

我运行这个过程:

nohup ./test.sh > test.log & 
Run Code Online (Sandbox Code Playgroud)

我使用以下方法检查过程:

 ps -aux | grep test.sh
Run Code Online (Sandbox Code Playgroud)

当我运行该进程时,我会检查脚本是否正在运行。但是,当我重新连接时,脚本不再运行。

test.sh文件内容如下:

#!/bin/bash
while :
do
        echo `date`": ****** Scheduled Test *****"
        result1=$(wget "127.0.0.1" -q -O -)
        result2=$(wget "127.0.0.1" -q -O -)
        echo ": $result1"
        echo ": $result2"
        if [[ $result1 == *"Running OK"* ]] && [[ $result2 == *"Running OK"* ]];
        then
                echo "***** Running OK ***** :)"
                sleep 60
                continue
        fi
        echo "@@@@@ Not Running @@@@@"
        echo "-----> Killing JARS"
        kill …
Run Code Online (Sandbox Code Playgroud)

unix linux bash nohup

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

Donot在nohup.out中保留logger.info()语句

我在服务器上编写了一个烧瓶应用程序.我像下面这样运行: -

export FLASK_APP=mypyhthonfile
nohup flask run --host=host-ip --port=port-number
Run Code Online (Sandbox Code Playgroud)

python脚本具有以下记录器语句:

Logger.info("this is a log")
Run Code Online (Sandbox Code Playgroud)

记录器语句同时打印在logger文件和nohup.out中

避免在nohup.out中打印记录器语句的方法是什么?

python nohup flask

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

标签 统计

nohup ×10

bash ×8

linux ×5

python ×4

chromium ×1

daemon ×1

flask ×1

macos ×1

stdout ×1

unix ×1