天道酬勤,学无止境

nohup

有没有办法在后台运行进程?(There is any way to run processes in the background?)

问题 是否有任何命令行或 .NET 方法在后台运行进程隐藏它试图打开的任何窗口? 已经尝试过: var process = new Process() { StartInfo = new ProcessStartInfo() { CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden, FileName = TheRealExecutableFileNameHere } } process.Start(); 到目前为止没有成功 回答1 我查看了我的代码,它看起来与您的几乎相同: ProcessStartInfo psi = new ProcessStartInfo(fileName, arguments) { CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden, UseShellExecute = false, RedirectStandardOutput = true }; Process process = Process.Start(psi); 唯一显着的区别(除了格式化和我们选择的 PSI 构造函数之外)是我使用了 UseShellExecute 和 RedirectStandardOutput,因为我需要读取运行过程的结果。

2021-12-08 18:06:58    分类:技术分享    c#   .net   nohup

jsch ChannelExec 使用 nohup “丢失”一些命令运行 .sh 脚本(jsch ChannelExec run a .sh script with nohup "lose" some commands)

问题 我有一个 .sh 脚本,它粘合了许多其他脚本,由 Windows 应用程序中的 jsch ChannelExec 调用。 Channel channel = session.openChannel("exec"); ((ChannelExec) channel).setCommand("/foo/bar/foobar.sh"); channel.connect(); 如果我运行像“nohup /foo/bar/foobar.sh >> /path/to/foo.log &”这样的命令,所有长期作业(数据库操作、文件处理等)似乎都丢失了。 检查日志文件,只找到那些回显的东西(在长期操作之前和之后,计算运行时间等)。 我检查了权限,$PATH,将 source /etc/profile 添加到我的 .sh 中,但这些都不起作用。 但是当我正常运行命令时(同步运行,在 Windows 上将所有回显输出打印到我的 java 客户端),一切顺利。 这是一个非常具体的问题。 希望有经验的人帮帮我。 预先感谢。 他们有 回答1 解决了! 在这种情况下经常出现的另一个问题是 ssh 拒绝注销(“挂起”),因为它拒绝丢失来自/到后台作业的任何数据。[6][7] 这个问题也可以通过重定向所有三个 I/O 流来克服。 来自 http://en.wikipedia.org/wiki/Nohup

2021-12-05 20:11:12    分类:技术分享    ssh   exec   jsch   nohup

如何在 bash 脚本中包含 nohup?(How to include nohup inside a bash script?)

问题 我有一个名为mandacalc的大脚本,我想始终使用nohup命令运行它。 如果我从命令行调用它: nohup mandacalc & 一切都进行得很快。 但是,如果我尝试在我的命令中包含nohup ,所以我不需要在每次执行时都输入它,我会收到一条错误消息。 到目前为止,我尝试了这些选项: nohup ( command1 .... commandn exit 0 ) 并且: nohup bash -c " command1 .... commandn exit 0 " # and also with single quotes. 到目前为止,我只收到错误消息,抱怨nohup命令的实现,或脚本中使用的其他引号。 干杯。 回答1 尝试将其放在脚本的开头: #!/bin/bash case "$1" in -d|--daemon) $0 < /dev/null &> /dev/null & disown exit 0 ;; *) ;; esac # do stuff here 如果您现在使用--daemon作为参数启动您的脚本,它将重新启动与您当前的 shell 分离的自身。 您仍然可以通过在没有此选项的情况下启动脚本来“在前台”运行脚本。 回答2 在 bash(或首选 shell)启动文件中创建同名别名: alias mandacalc="nohup mandacalc &"

2021-12-05 19:29:55    分类:技术分享    bash   shell   unix   nohup

如何在 Windows 的后台不断运行 Python 脚本?(How to constantly run Python script in the background on Windows?)

问题 我创建了一个将文件从一个文件夹移动到另一个文件夹的脚本。 但由于原始文件夹是下载文件夹,我需要它始终在后台运行。 我还有一个标准的批处理文件,看起来像这样: @py C:\\Python\Scripts\moveDLs.py %* 我正在使用Windows 10 。 我已经找到有关如何在批处理文件中使用nohup Linux 和操作系统信息。 有 Windows 版本吗? 如果有每次重启或打开PC时都需要执行脚本吗? 另外,当您设法使其永久化时,您如何终止该过程? 非常感谢 回答1 在 Windows 上,您可以使用 pythonw.exe 来运行 python 脚本作为后台进程: 默认情况下,Python 脚本(扩展名为.py文件)将由python.exe执行。 此可执行文件会打开一个终端,即使程序使用 GUI,该终端也会保持打开状态。 如果您不希望发生这种情况,请使用扩展名.pyw ,这将导致脚本默认由pythonw.exe执行(两个可执行文件都位于 Python 安装目录的顶层)。 这会在启动时抑制终端窗口。 例如, C:\ThanosDodd\Python3.6\pythonw.exe C:\\Python\Scripts\moveDLs.py 为了让你的脚本持续运行,你可以使用 sched 进行事件调度: sched 模块定义了一个实现通用事件调度器的类

2021-12-05 08:02:39    分类:技术分享    python   background-process   nohup

nohup:在后台运行 PHP 进程(nohup: run PHP process in background)

问题 我尝试在后台运行 php 进程并从 php 文件启动它。 一些信息:PHP 5.2.17 版本,php safe_mode 关闭,linux 系统。 我用 exec 启动进程,已经尝试过 shell_exec。 我将所有文件设置为 0755、0777。 $pid = exec("nohup $cmd > /dev/null 2> /dev/null & echo $!"); 如果我打印此语句,我会得到这个并且 pid 没问题: nohup /usr/local/bin/php5 /.../../file.php > /dev/null 2> /dev/null & echo $! 如果我在 ssh 下寻找进程 top 我看到我的 php5 进程具有正确的 pid。 用户是root PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3533 xxxxxxxx 20 0 21356 8868 4580 S 0 0.4 0:00.13 php5 3536 xxxxxxxx 20 0 20836 8260 4428 S 0 0.4 0:00.09 php5 3539 xxxxxxxx 20 0 20836 8260 4428 S 0 0.4 0:00.09 php5 3542 xxxxxxxx 20 0 20836 8260

2021-12-03 13:22:09    分类:技术分享    php   process   background   cron   nohup

Monit bundle exec rails s(Monit bundle exec rails s)

问题 我有以下 shell 脚本,它允许我启动我的 rails 应用程序,假设它被称为start-app.sh : #!/bin/bash cd /var/www/project/current . /home/user/.rvm/environments/ruby-2.3.3 RAILS_SERVE_STATIC_FILES=true RAILS_ENV=production nohup bundle exec rails s -e production -p 4445 > /var/www/project/log/production.log 2>&1 & 上面的文件具有以下权限: -rwxr-xr-x 1 user user 410 Mar 21 10:00 start-app.sh* 如果我想检查过程,我会执行以下操作: ps aux | grep -v grep | grep ":4445" 它会给我以下输出: user 2960 0.0 7.0 975160 144408 ? Sl 10:37 0:07 puma 3.12.0 (tcp://0.0.0.0:4445) [20180809094218] PS:我 grep ":4445" 的原因是因为我在不同的端口上运行的进程很少。 (针对不同的项目) 现在来到 monit,我使用 apt-get 来安装它,repo

2021-12-03 11:42:08    分类:技术分享    ruby-on-rails   linux   bash   nohup   monit

注销时 bash 如何处理作业?(How bash handles the jobs when logout?)

问题 据我从书籍和 bash 手册中了解到的是。 当用户从 bash 注销时,如果用户未使用 nohup 或 disown,则该用户启动的所有后台作业将自动终止。 但是今天我测试了它: 登录到我的 gnome 桌面并访问 gnome-terminal。 终端中有两个选项卡,其中一个我创建了一个名为 test 的新用户并以 test 身份登录su - test 启动了一个脚本。 cat test.sh #!/bin/bash sleep 60 printf "hello world!!" exit 0 ./test.sh & 之后我退出了测试并关闭了选项卡在下一个选项卡中,我以 root 身份执行 ps aux 并发现该作业仍在运行。 这是怎么回事? 回答1 正在运行的后台作业是否在退出时终止取决于 shell。 Bash 通常不会这样做,但可以配置为登录 shell ( shopt -s huponexit )。 在任何情况下,在控制进程(例如登录 shell)终止后,都无法访问 tty。 总是会导致SIGHUP包括: tty 关闭时前景中的任何内容。 任何包含在 shell 终止时停止的进程的后台作业( SIGCONT和SIGHUP )。 壳牌通常会在发生这种情况之前警告您。 huponexit总结: On : 当 shell 退出时,后台作业将用 SIGHUP 终止$

2021-12-01 10:50:38    分类:技术分享    linux   bash   nohup

There is any way to run processes in the background?

There is any command line or .NET method that runs a process in the background hiding any window it tries to open? Already tried: var process = new Process() { StartInfo = new ProcessStartInfo() { CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden, FileName = TheRealExecutableFileNameHere } } process.Start(); With no success so far

2021-11-29 02:18:41    分类:问答    c#   .net   nohup

Run a java program in backend

Hi all i want to run a java application as backend process.that is like tomcat server.For that i had developed one application.and made one class as main class and calling from one script file .i.e(startup.sh) file.in startup.sh file i was calling one class.that is MainMethodClass.In main method class i had written my business logic.when i am running this app in linux server from using putty is is working until putty window is not closed.As closed after putty window it is also stopped.but i need to run this app even i closed also.How can i achieve this.

2021-11-28 20:17:57    分类:问答    java   linux   background   nohup

nohup 导致“read_passphrase:无法打开/dev/tty”(nohup causes "read_passphrase: can't open /dev/tty")

问题 我在脚本 nohupssh.sh 中有一个简单的远程 ssh 命令 sleep 30 ssh -v -l developer server11 "/usr/local/jdk1.7.0_45/bin/jmap -histo:live 1770;" 我运行脚本如下: nohup nohupssh.sh > out.log 2>&1 & 当我如上所示执行它时,jmap 实用程序在远程服务器上成功执行。 但是,如果我如上所示执行它并退出 bash shell,我会收到如下所示的错误。 请注意,我在本地和远程服务器上都有一个格式正确的 authorized_keys。 另请注意,任一服务器中都没有 id_rsa,因为这些服务器是共享的。 我尝试了很多组合: ssh -v -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null server11 .... 但无济于事。 我仔细检查了 ssh 的手册页以寻找线索,尝试了各种选项。 我认为必须有一个或一组 ssh 选项可以解决这个问题。 真正的脚本(而不是上面删节的)也有 scp 。 因此,我希望我所不知道的选项对 scp 和 ssh 都适用。 完整的详细日志是 OpenSSH_4.3p2

2021-11-28 05:24:55    分类:技术分享    ssh   scp   nohup