有没有一种“本地”方式可以将 nohup 旋转出文件?
当我需要在低重要性服务器上启动后台进程时,我倾向于使用 nohup:
nohup ./server.sh &
Run Code Online (Sandbox Code Playgroud)
大多数同事似乎更喜欢屏幕:
screen -D -R mydaemon
./mydaemon.sh
^A ^D
Run Code Online (Sandbox Code Playgroud)
这两种方法的效果有什么主要区别吗?以一种方式或另一种方式有什么好处?
我似乎无法找到一种通过 ssh 管理工作的体面方法。我想在 ssh 会话中开始一项工作,注销,重新登录,做一个 fg,检查工作,注销,然后重复整个过程。nohup 似乎效果不佳。
我用过这个命令
$ nohup script & > nohup.out
[1] 28128
$ nohup: ignoring input and appending output to `nohup.out'
[1]+ Exit 255 nohup script
Run Code Online (Sandbox Code Playgroud)
如果我这样做
$ jobs
$ ps -ef | grep script
Run Code Online (Sandbox Code Playgroud)
我什么也没得到,即找不到进程。
另外,我有一个相关的问题是:如果我在 ssh 会话中,并且想将作业发送到后台,则 ctrl-z 不起作用。该怎么办?
任何人都可以帮助我吗?
我有一个命令(程序),我想用 nohup 和后台运行它。喜欢
nohup command > logfile.txt &
Run Code Online (Sandbox Code Playgroud)
如何找出进程ID?我希望能够将进程 ID 写入文件,稍后读取并以编程方式终止进程。
nohup <command> <arg> &
当我通过 SSH 连接到 Linux 服务器时,如果我想运行一个命令并确保它在我从 SSH 注销后继续在后台运行,我将使用上述命令。
最近我正在使用一个名为Bitnami Node.js 堆栈的服务器堆栈。它是一个独立的软件包。node安装目录下的bin文件夹中有一个二进制文件。
在命令行中,我可以使用node命令来运行我的 JS 程序:node <js_program.js>. 没有问题。
但是,我想在从 SSH 注销后继续运行该程序。当我跑步时nohup <installation_dir>/nodejs/bin/node <js_program.js> > <stdout.out> &,程序将在后台运行。但是,当我从 SSH 注销时,该程序也会立即终止。看来该nohup命令在这种情况下没有任何作用。
我该如何解决这个问题?
我正在尝试在我的 CentOS 6.3 x64 服务器上执行以下命令:
nohup "/usr/local/bin/php -v"
Run Code Online (Sandbox Code Playgroud)
结果是:
nohup: ignoring input and appending output to `nohup.out'
nohup: failed to run command `/usr/local/bin/php -v': No such file or directory
Run Code Online (Sandbox Code Playgroud)
这适用于 CentOS 5 没问题。知道我做错了什么吗?
是否可以重新附加以 nohup 启动的进程?
例如,在终端中启动:
nohup tail -f /dev/null &
Run Code Online (Sandbox Code Playgroud)
关闭终端。现在打开一个新终端。您如何将 nohup'd 进程重新附加到这个新终端?
您已经有一个正在运行的进程,并且希望将其置于后台运行。
如果您想确保在关闭 ssh 连接后这仍然会运行,您应该怎么做?
注意:在您要做出此决定时,您已经在运行该流程。
我知道这一点Ctrl-Z并且bg会使其在后台运行,但我仍然担心当您关闭 ssh 连接时该进程会被终止。
我有一个进程正在占用一个终端
]$ command some_argument
Run Code Online (Sandbox Code Playgroud)
我想从终端退出并回家,但同时我不想终止这个正在运行的进程。
对于上面的运行过程,我想实现如下:
]$ nohup command some_argument >& logfile &
Run Code Online (Sandbox Code Playgroud) 我想运行以下 rsync 命令将文件夹从远程服务器传输到我当前的文件夹,sudo -r -a -v -e 'ssh -p portnum' username@serverip:/home/path/* /home/path这个目录在大小和结构上都非常大,传输需要一些时间。我不想在 PuTTY 窗口打开的情况下打开我的计算机,而是想运行一个命令,该命令在我关闭窗口并关闭我的 PC 后继续执行。
我试过使用前缀,nohup但它没有用。我还有什么其他选择?