我的实际问题是,我作为docker run container bash –rcfile rcfile中的rcfile中运行的进程仍然附加到bash会话通过共享PGID,这意味着当我Ctrl-C一个不相关的命令进程收到一个SIGINT 所以,在rc文件里面它只是(nohup command &) ,而不是使用rcfile,我直接在shell中调用它,PGID是不同的,Ctrl-C不会影响。 从那里我推断出于某种原因,bash在执行rcfile时不会执行相同的后台进程。 写了一个没有docker的小testing,我看到了PGID的行为。 RCFILE,睡眠和bash共享PGID Cobain ~/tmp/testbash$ cat rcfile #!/bin/bash (sleep 10 &) Cobain ~/tmp/testbash$ bash –rcfile rcfile arkaitzj@Cobain:~/tmp/testbash$ ps -o "%p %r %y %x %c" PID PGID TTY TIME COMMAND 2883 2883 pts/0 00:00:06 bash 27911 27911 pts/0 00:00:00 bash 27913 27911 pts/0 00:00:00 sleep 27914 […]
我试图更新一个服务器,我与yum update ,它中止,因为服务器内存不足。 我杀掉了几个不需要的进程,然后执行了yum-complete-transaction但是好像它陷入了疯狂的循环。 [root@syd-01 ~]# uname -a Linux syd-01.*******.net 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 我将不胜感激关于如何解决这个问题的任何build议。 下面是循环的摘录(实际上它要长得多): –> Processing Dependency: libtinfo.so.5()(64bit) for package: util-linux-ng-2.17.2-12.14.el6_5.x86_64 —> Package net-tools.x86_64 0:1.60-110.el6_2 will be erased –> Processing Dependency: net-tools for package: initscripts-9.03.40-2.el6.centos.4.x86_64 —> Package nss-softokn-freebl.x86_64 0:3.14.3-3.el6_4 will be erased –> Processing […]
我试图找出一个项目的可行性,我希望能够在每个请求上运行一个脚本(最好通过MIMEtypes进行过滤),并运行一个脚本来设置响应头。 基本上我想要的文本/ HTML和应用程序/ JSON文件的HTTP头由系统生成的任意数据(实际头添加将是GIT分支和提交哈希信息)。 这是为本地和分期的networking服务器,所以性能影响不是高度关注。 我已经用bash脚本调查了mod_ext_filter,并且我可以成功地将string注入到输出中,但是我无法访问标题(我假设它们已经被发送了?) 还有其他的select,我可以调查? 我到目前为止的尝试(在虚拟主机中): ExtFilterDefine githeaders mode=output \ cmd="/bin/bash /path/to/script/git_headers.sh" preservescontentlength <Location /> SetOutputFilter githeaders </Location> 基本的bash脚本testing回声 #!/bin/bash echo "hello" cat 上面的工作正常,向响应中注入hello,但我不能解决如何更改标题。 任何帮助/build议表示赞赏。
我想在机器启动时启动这个inotifywait脚本,以便从启动时监视文件夹: #!/bin/bash while inotifywait -r -e modify,attrib,close_write,move,create,delete /var/www/htdocs /administrator /var/www/htdocs/components; do sh /home/ec2-user/s3backup.sh done 为此,我将脚本位置添加到/etc/rc.local文件中。 当我重新启动计算机时,可以看到有一个inotifywait进程正在运行,但没有任何反应,当文件被更改时。 当我手动启动脚本(或rc.local文件),一切工作正常。 我究竟做错了什么?
我有一个for循环我用来停止和开始数量的开发服务器这里是一个例子。 for i in `cat hosts` ; do ssh $i -i .ssh/key.key -t sudo /etc/init.d/jboss-as start ; done 这将连接到每个盒子,并停止服务,我必须等待在这种情况下closures服务的操作“jboss”之前,连接到其他箱子。 有没有办法可以执行请求并退出而无需等待完成? 谢谢
我已经创build了一个脚本来重新启动Ubuntu实例运行。 crontab -e 然后将其添加到脚本中: @reboot /home/ubuntu/startup.sh 这是脚本的样子: #!/bin/bash tmux new-session -d -s my_server tmux send-keys -t my_server:0 ". /home/ubuntu/venv/bin/activate" Cm tmux send-keys -t my_server:0 "cd ~/canonicaliser_api" Cm tmux send-keys -t my_server:0 "git checkout new-schema" Cm tmux send-keys -t my_server:0 "git pull" Cm tmux send-keys -t my_server:0 "cd ~/canonicaliser_api/canonicaliser/workers" Cm tmux send-keys -t my_server:0 "python person_worker.py" […]
set -x或set -v打印每个执行的命令。 当命令开始执行时,如何获得打印命令?
您可以从当前环境中检索variables的FPMconfiguration统计信息。 然而,在使用Nginx和PHP-FPM的ubuntu上,我找不到从环境中检索variables值的方法, 而无需在php-fpm.conf或nginx fcgi params中对它进行硬编码 。 有没有办法从/ etc / environment或/etc/bash.bashrc获取环境variables? 例如: clear_env = no ENV[SECRET_TOKEN] = $SECRET_TOKEN 我认为主要的问题是无法修改www-data的环境variables。 as >sudo -H -u www-data bash -c "env"不包括SECRET_TOKEN 。
什么是为所有用户设置环境variables的首选方法(在Ubuntu上),以便在新的shell /terminal启动时读取新的variables? 目前,我们正在/etc/profile.d/使用一个文件,但是 当用户打开一个新的shell时,变化不会被提取 只有程序通过loginshell启动(例如,我们必须设置terminal运行/bin/bash -l而不是/bin/bash )实际上读取这个文件。 我想可以要求在所有用户的.bashrc的source行,但有一种方法来保持在/etc一切?
我注意到/ tmp中有很多空的文件,其名称类似于“/tmp/tmp.tMIHx17730”。 我运行审计规则,我发现mktemp创build它不是太有用。 如何找出哪个脚本调用mktemp来创build这些文件? 我可以用auditd捕获父进程ID /命令行吗? 更新:我相信我有父进程id(ppid = 17729),但脚本很快退出,我找不到脚本。 我可以安装auditd以获得父进程命令行吗? 更新2:这里是我如何安装审计显示whatwrites tmp: auditctl -w /tmp -k tmpfiles 然后: ausearch -k tmpfiles|grep "tmp." 然后,我select一个文件,我做到了 ausearch -k tmpfiles -f /tmp/tmp.tMIHx17730 这显示了我创build文件和父进程pid的过程。 我需要设置一些启动监听器的进程来捕捉那个pid最近的进程