我是 SSH 新手。我可以连接到远程计算机。我还可以在远程计算机上启动应用程序并在我的屏幕上查看其 GUI。
但是我不知道如何启动应用程序而不在我的屏幕上产生输出。
我想启动一个应用程序(例如 rhythmbox),并关闭 ssh 连接,让应用程序继续运行,而不向我的屏幕发送任何输出。
网上冲浪我找到了一些建议,但没有任何帮助;
ssh -X name@domain
nohup rhythmbox &
logout
Run Code Online (Sandbox Code Playgroud) 我用这个命令运行我的脚本
nohup python a.py > /var/log/a.log 2>&1&
Run Code Online (Sandbox Code Playgroud)
这没关系,但每次我运行此命令时,/var/log/a.log 文件都会被截断。无论如何,有没有办法附加这个文件?
我可以在新的 Gnome 终端中启动一个命令,如下所示:
nohup gnome-terminal --window-with-profile=Background --command ls >/dev/null 2>&1&
Run Code Online (Sandbox Code Playgroud)
(基于https://askubuntu.com/a/46630/7146和/sf/answers/749582851/)
但是,我希望新的终端窗口在启动器中最小化。我怎样才能做到这一点?
假设我有一些服务器软件。我启动它,它在 stdin/stdout 上提供了一个接口,我可以用它在运行时输入命令。我希望能够通过 SSH 启动它,退出会话,返回并再次挂接到该 stdin/stdout 接口。
我在想一定有一个像 nohup 或 & 这样的简单命令可以让我这样做。在那儿?
我创建了一个启动应用程序的 bash 脚本。由于我希望在应用程序启动时关闭终端窗口,所以我使用了这一行:
firefox & 2> /dev/null; exit;
Run Code Online (Sandbox Code Playgroud)
只要我从命令行启动脚本,它就可以正常工作。但是,如果我从桌面启动器启动它,应用程序和终端都会关闭。谁能解释这是为什么。我使用的是 Ubuntu 10.10。
仅使用:
nohup firefox
Run Code Online (Sandbox Code Playgroud)
有用。但如果可能的话,我仍然想解释为什么从桌面启动器启动时原始版本不起作用。
我正在 ubuntu 12.04 下使用 weblogic 10.3.5。
Weblogic 开始使用
nohup ./startWebLogic.sh >Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.out 2>&1 </dev/null &
Run Code Online (Sandbox Code Playgroud)
它工作正常,现在我想旋转AdminServer.out使用,logrotate但似乎并不容易做到。在互联网上搜索并不清楚是否可能。
我尝试使用这些copytruncate选项。当 logrotate 正在执行时,文件的大小变为 0,但在服务器的第一次“写入”后返回到原始大小。
还尝试重命名文件。服务器仍然写入重命名的文件。
服务器似乎只有一个指向文件的指针,而与文件的名称或大小无关。
所以……有解决办法吗?是否使用 logrotate。
- 编辑 -
我也试过
#!/bin/bash
mkdir -p tmp
if [ ! -p tmp/weblogic.fifo ]; then
mkfifo tmp/weblogic.fifo
fi
tail -f tmp/weblogic.fifo >> Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.out &
nohup ./startWebLogic.sh > /home/me/tmp/weblogic.fifo 2>&1 </dev/null &
Run Code Online (Sandbox Code Playgroud)
我不知道它是否正确,但是...至少有一个问题:有时,它会挂断写入文件。有时几秒钟但过了一会儿(甚至在服务器启动之前)......无限期!
所以我无法测试 logrotate。
我的 python 脚本称为scrape.py. 顾名思义,它是一个网络爬虫,我希望它在我的 Linux 机器上持续运行,即使在我注销并结束 ssh 会话后也是如此。我在这里读了很多,有很多关于使用nohup python scrape.py &. 这工作得很好,但是一旦我注销,脚本执行就停止了。我也探索了该supervisor应用程序,但我没有 root 权限,所以它也失败了。你能建议我解决这个问题的方法吗?谢谢你。
我正在尝试安装nohup命令。当我运行时,sudo apt-get install nohup我得到:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package nohup
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
我需要在后台模式下运行一些 mysql-query ......但是我怎么能做到这一点nohup呢?
通常我会这样做:
mysql -uroot -p
use SomeDb;
Select * from blablalba;
Run Code Online (Sandbox Code Playgroud)
但是我如何通过在 db 进程中启动来做到这一点?我使用 nohup 进行 mysql 导入,但如何使用查询?