我的 FreeBSD 8.4 机器上运行着一个 nohup 进程。最初我正在查看 nohup 控制台消息输出
tail -f nohup.out
Run Code Online (Sandbox Code Playgroud)
但我不小心删除了 nohup.out 文件。我现在如何访问控制台消息?
归结为这里最小的问题是一个简单的python脚本,我想在linux上使用nohup运行.我使用以下(在Linux上)运行它:
nohup python test.py &
Run Code Online (Sandbox Code Playgroud)
该命令似乎没有做任何事情,没有任何内容附加到nohup.out.如果我运行它而没有&输出在终端窗口上正确显示.我错过了什么?
import time
def test():
while(True):
print "Woke up!"
time.sleep(5)
if __name__ == "__main__":
test()
Run Code Online (Sandbox Code Playgroud) 我正在使用 AWS(ubuntu 实例)。我想使用nohup在后台运行。
我在我的腻子中尝试了这段代码。
sudo nohup python3 manage.py runserver --settings=health.settings 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)
然后,
nohup: ignoring input and appending output to 'nohup.out'
Run Code Online (Sandbox Code Playgroud)
此代码出现并且网站运行良好。但我按“Ctrl + C”,然后 nohup 结束。怎么了?
我今天尝试使用该nohup命令执行rsync命令,以便将一些文件的副本从VM处理到另一个,即使我关闭控制台也是如此.
然后我说为什么不用+rsync [parameters] &disown %1
这两者有什么区别?
我无法理解仅使用 nohup 运行脚本与使用 nohup 和“&”之间的区别。我理解对于后者,如果我想杀死它,我可以杀死进程id。但是对于前者,我可以按“CTRL+C”来终止脚本吗?所以如果我要运行下面的命令
nohup sh 脚本.sh
然后按“CTRL+C”退出它,该脚本是否仍在运行?
我通过ssh登录虚拟机,并尝试在后台运行脚本,脚本如下所示:
#!/bin/bash
APP_NAME=`basename $0`
CFG_FILE=$1
. $CFG_FILE #just some variables
CMD=$2
PID_FILE="$PIDS_DIR/$APP_NAME.pid"
CUR_LOG_DIR=$LOGS_RUNNING
echo $$ > $PID_FILE
#Main script code
#This script shall be called using the following syntax
# $ nohup script_name output_dir &
TIMESTAMP=`date +"%Y%m%d%H%M%S"`
CAP_INTERFACE="eth0"
/usr/sbin/tcpdump -nei $CAP_INTERFACE -s 65535 -w file_result
rm $PID_FILE
Run Code Online (Sandbox Code Playgroud)
结果应该是 tcpdump 在后台运行,将命令结果重定向到 file_result。
该脚本的调用方式为:
nohup $SCRIPT_NAME $CFG_FILE start &
Run Code Online (Sandbox Code Playgroud)
并且它停止调用 STOP_SCRIPT:
##STOP_SCRIPT
PID_FILE="$PIDS_DIR/$APP_NAME.pid"
if [ -f $PID_FILE ]
then
PID=`cat $PID_FILE`
# send SIGTERM to kill all children of $PID
pkill -TERM …Run Code Online (Sandbox Code Playgroud) 在Unix中,我有一个我想用nohup运行的进程.但是,此过程将在某个时刻等待我必须输入yes或no继续的提示.到目前为止,在Unix中我一直在做以下事情
nohup myprocess <<EOF
y
EOF
Run Code Online (Sandbox Code Playgroud)
所以我使用nohup启动进程'myprocess'并使用'y'在一个文件中管道然后关闭文件.上面的行实际上是三个单独的命令 - 即我在UNIX的第一行输入,然后我得到一个提示,我输入'y'然后按Enter键然后最后键入'EOF'并再次点击返回.
我想知道在Perl中执行此操作,但我不确定如何执行此命令,因为它超过三行.我不知道以下是否有效......
my $startprocess = `nohup myprocess <<EOF &
y
EOF
`
Run Code Online (Sandbox Code Playgroud)
请帮忙 - 谢谢!
我有一个.sh脚本,它粘合了许多其他脚本,由Windows应用程序中的jsch ChannelExec调用.
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("/foo/bar/foobar.sh");
channel.connect();
Run Code Online (Sandbox Code Playgroud)
如果我运行像"nohup /foo/bar/foobar.sh >> /path/to/foo.log&"这样的命令,那么所有长期工作(数据库操作,文件处理等)似乎都会丢失.
检查日志文件,只查找那些回声填充(长期操作之前和之后,计算运行时间等).
我检查了权限,$ PATH,将源/ etc/profile添加到我的.sh但这些都没有.
但是当我正常运行命令(同步运行,在Windows上将所有回显输出打印到我的java客户端)时,所有事情都顺利进行.
这是一个非常具体的问题.希望有经验的人可以帮助我.
预先感谢.
韩
嗨,我正在尝试运行因SignalException而失败的脚本/运行程序进程:SIGHUP:
这个过程大约需要4-5小时.有人可以让我知道究竟发生了什么以及将会有什么解决方法.
谢谢
我刚开始使用CS GO服务器,我会使用TCAdmin制作一个用于制作游戏服务器的GUI,但由于Counter Strike GO处于测试阶段,因此无法正常运行.我的问题是我有一个名为./srcds_run的脚本然后我运行它.工作完美.但是我如何让它作为后台进程运行,所以我可以注销并将服务器留在那里?
谢谢,死灵.