Articles of 后台进程

如何正确使用bash中的“nohup”和“&”作为另一个用户来运行程序

过去几个月,我一直在学习bash和linuxpipe理,同时生产越来越多的需要在后台运行的代码。 理想情况下,我希望使我的开发系统更接近于生产环境,以避免由于安全和权限问题而重新开发代码。 一般来说,我会运行的东西: $nohup <program> <program args> >> <program logfile> 2>&1 & 即: $nohup ping 192.168.0.1 >> ping.log 2>&1 & 然而,今天我试图通过创build一个用户,并给予他们正确的权限,只能够访问自己的文件,没有别的正确的设置。 这似乎是一个明智的安全做法。 我会这样做: $sudo -u <program user> nohup <program> <program args> >> <program logfile> 2>&1 & 但是,当我运行ps aux | grep <program>时会导致以下输出 ps aux | grep <program> : <admin user>@server:~$ ps aux | grep <program> root […]

编辑发送到后台的命令

是否可以编辑发送到后台的进程的命令行,或者链接另一个命令,在第一个命令退出后执行? 例如:我开始使用wget -m site.com镜像站点,但是后来发现我希望在执行作业时通过电子邮件通知我。 工作在后台运行( bg )。 如何在命令中添加&& sendmail ,或者在第一个命令执行完成后执行?

在Ubuntu Lucid 10.04的后台运行netcat

我正在尝试从一台服务器执行pg_dump,并同时在另一台服务器上进行恢复。 源服务器上的命令(192.168.3.94): pg_dumpall -v | nc 192.168.3.95 4000 目标服务器上的命令(192.168.3.95): nc -l 4000 | psql mydb 现在我通过Putty从PC上运行这个程序。 由于这个过程需要大约5个小时,所以我想为后台作业和closuresterminal窗口。 但我无法弄清楚如何后台两个命令,也退出shell。 帮帮我!

后台作业从脚本运行时终止,但从bash提示符运行时工作正常

我在MacOS 10.9.4上。 如下所示,我想把sftp放到后台,以后通过命名pipe道自动将一些文件推送到它。 当我从bash提示符手动input命令(使用cat作为侦听器作业以简化)时,它工作正常: $ mkfifo test $ cat > test & [1] 60765 $ cat test | cat & [2] 60781 60782 [1] + 60765 suspended (tty input) cat > test $ echo works! > test works! $ ps -ax | grep 60765 60765 ttys023 0:00.00 cat 60900 ttys023 0:00.00 grep 60765 但是,当我把它放在bash脚本中停止工作: $ […]

如何使用程序的名称而不是PID来杀死进程?

我使用nohup在后台启动了我的Python程序,如下所述 – nohup zook.py & 现在我试图杀死这个进程,所以我做了ps命令,如下所述 root@phxdbx1145:/home/david/zook# ps ax | grep zook.py 16352 pts/6 S+ 0:00 grep –color=auto zook.py 但不知何故,每当它的PID发生变化,我不知道为什么。 每当我这样做 – kill -9 16352 它总是说, No Such Process 。 而当我再次执行px命令时,我发现PID自动改变了。 所以我不知道如何杀死这个过程? 有什么办法可以用这个名字杀死进程吗? 我试过了 killall zook.py 但它不适合我,我得到 – zook.py: no process found 任何其他选项? 不知何故每次,它的PID得到改变..所以我不能使用kill -9 pid 更新: – 这是我得到的。 我做了pkill -9 zook.py ,然后我做了ps命令,如下所述,这是不断scooking zook.py? root@dbx1145:/home/david/zook# […]

在linux中通过ssh2运行一个命令,在会话结束时保持运行

一个简单的问题谁知道… 我想在Linux shell中运行一个程序(ssh2)我用'&'运行程序,所以它应该在后台运行 但是,当我结束会议,程序中止。 我怎样才能使程序运行,直到完成,并能重新连接时fg它?

同时启动进程

我写了一个bash脚本,它需要运行130个Perl脚本。 #!/bin/bash perl file1.pl & perl file2.pl & perl file3.pl & …. …. perl file130.pl & 上面的bash脚本在cron中configuration为每10分钟运行一次。 有没有其他方法可以同时运行所有这些超过130个Perl脚本?

看看后台进程是什么

我目前在我的UNIX服务器上有一个后台进程,运行的时间比应该多。 我不记得命令让我看到后台进程的输出。 我会记得collections这个答案!

在其他节点上使用ssh -x -n终止父进程产生的所有进程

一个名为G09的软件使用Linda并行工作。 它在其他节点上产生并行的孩子 /usr/bin/ssh -x compute-0-127.local -n /usr/local/g09l/g09/linda-exe/l1002.exel …other_opts… 但是,当主节点杀死该进程时,其他节点上相应的subprocesscompute-0-127不会死机,而是继续在后台运行。 现在,我手动去每个有这些孤儿琳达进程的节点,杀死他们。 有什么办法可以杀死这样的subprocess? 在杀死进程之前查看PSTREE的pastebin 1,并在杀死父进程之后查看PSTREE的pastebin 2 pastebin1 – http://pastebin.com/yNXFR28V pastebin2 – http:// pastebin.com/ApwXrueh – 没有足够的声望点超链接第二个pastebin,对不起!

使用服务启动初始化脚本时,工作目录是否存在问题?

我很好奇,有什么我需要注意的是,当从初始化脚本使用service作为后台作业产卵过程? 这是在terminal工作的行,在bash脚本/ init脚本中,但是在使用chkconfig时不会成功启动: service celerydsvcname start /var/www/rhodecode-venv/bin/paster celeryd /var/www/rhodecode/production.ini –pidfile=/var/run/celeryd.pid -f /var/log/celerydpaster.log -l WARNING -q & 我做了一些有趣的故障排除: cd /var/www/rhodecode-venv/bin /var/www/rhodecode-venv/bin/paster celeryd /var/www/rhodecode/production.ini –pidfile=/var/run/celeryd.pid -f /var/log/celerydpaster.log -l WARNING -q & sleep 2 ls -l /proc/$(pgrep paste)/cwd echo Done. 我得到以下返回: Traceback (most recent call last): File "/var/www/rhodecode-venv/bin/paster", line 8, in <module> load_entry_point('PasteScript==1.7.4.2', 'console_scripts', 'paster')() File "/var/www/rhodecode-venv/lib/python2.6/site-packages/PasteScript-1.7.4.2-py2.6.egg/paste/script/command.py", line […]