Articles of Linux操作系统

Cronjob PHP脚本不工作

我试图设置一个cronjob每20分钟运行一次。 这可以手动工作: php /srv/www/mysite.co.uk/public_html/PP/Make_XML.php LONDON 我尝试使用“crontab -e”,甚至每20分钟设置一次: */20 * * * * php /srv/www/mysite.co.uk/public_html/PP/Make_XML.php LONDON 它被保存到/tmp/crontab.0xYhei9m/crontab 而且似乎没有工作。 这里有什么问题? 编辑: 目前统计: *。 cron正在运行: root 31855 1 0 08:39 ? 00:00:00 /usr/sbin/cron *。 运行“crontab -l”显示: * / 20 * * * * / usr / bin / php /srv/www/mysite.co.uk/public_html/PP/Make_XML.php伦敦 还是不行 再次手动运行脚本工作得很好。

共享库中库函数的select性静态链接

我想创build一个使用第三方静态库函数的共享库。 例如,来自libfoobar.a foo和bar 。 我知道我的主要应用程序也使用foo ,并将导出该符号。 所以我只是想在链接bar保存代码大小,并留下'富'未解决(因为它将由主应用程序提供)。 如果我包含libfoobar.a ,链接器ld将在我的共享库中包含这两个函数。 如果我不包含libfoobar.a ,我的库将无法访问functionbar因为应用程序本身并没有在bar链接。 问题: 有没有办法告诉ld在构build共享库时只parsing某些符号? 把libfoobar.a变成共享库? 从libfoobar.a提取包含functionbar文件并在链接器行上指定该文件? 不要担心,运行时加载器将使用您的应用程序中的bar ,这样共享库中的bar副本将不会被加载?

在Linux上debugging一个简单的字符驱动程序在device_create()上失败

我写了一个简单的字符驱动程序,现在想在udev中使用类自动注册它。 我的代码由驱动程序加载时调用的init函数和驱动程序加载其设备时调用的probe函数组成(当然还有它们的等价的exit和remove )。 问题:一旦添加新设备,执行device_create命令时,我的probefunction失败。 现在我想知道为什么: 我怎么能得到更多的信息,为什么这个命令失败(除了失败)? 缺less任何参数(比如我的全局声明fooClass是否存在问题,是否应该将其移至probe函数,而不是在我眼中做出反应,但在许多示例中显示)? 还是其他监督错误? 我的代码我剥离了大多数返回validation(如IS_ERR() )和清理function的可读性。 这两个variables是全局定义的: static int foo_majNbr; static struct class *fooClass; init函数: static int __init foo_init(void) { int rv; dev_t devNbr; /* Registering driver */ rv = pci_register_driver(&foo_driver); /* —-> see answer below for correct order <—- */ /* Create device class */ fooClass = class_create(THIS_MODULE, CLASS_NAME); /* […]

/usr/include/gnu/stubs.h:7:27:error:gnu / stubs-32.h:没有这样的文件或目录

我正在尝试安装roccc 2.0 。 我已经安装了所需的包。 现在在安装时,它给了我这个错误: /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory 我search了gnu/stubs-32.h ,结果发现,对于Linux 64位, glibc-devel和Linux 32位, libc6-dev-i386 。 我正在使用Linux 32位:i386 GNU / Linux,但无法获得解决此错误所需的lib 。 有人可以帮我吗?

有没有办法在设置dpkg控制文件时自动确定依赖关系?

dpkg(Debian)控制文件中的大部分字段都很简单。 棘手的是确定依赖列表(取决于:)。 我希望dpkg-gencontrol可以通过查看软件包目录中的可执行文件的ldd输出来实现这一点。 也许可以,但我不能得到它的工作。 如果这是dpkg-gencontrol目的,我得到的错误是: dpkg-gencontrol: error: syntax error in control_template at line 7: first block lacks a source field. 作为参考,命令是dpkg-gencontrol -v1.1 -ccontrol_template -lchangelog -Pdebian 。 control_template文件包含这个: Package: my-package Maintainer: Joe Coder <joe@coder.com> Description: The my-package system A longer description that runs to the end of one line and then extends to another line. Priority: […]

如何确定一个文件是否是一个链接?

我有下面的代码只有它的一部分显示在这里 ,我正在检查如果文件的types。 struct stat *buf /* just to show the type buf is*/ switch (buf.st_mode & S_IFMT) { case S_IFBLK: printf(" block device\n"); break; case S_IFCHR: printf(" character device\n"); break; case S_IFDIR: printf(" directory\n"); break; case S_IFIFO: printf(" FIFO/pipe\n"); break; case S_IFLNK: printf(" symlink\n"); break; case S_IFREG: printf(" regular file\n"); break; case S_IFSOCK: printf(" socket\n"); […]

“总线错误”系统错误

我正在运行一个使用一些系统库的Linux工具,就像我们一些自定义库一样。 该工具的目的是访问/configuration有一些固件运行的PCI Express卡。 我对代码做了一些细微的改动,没有什么意义,突然发现了“总线错误”。 我知道这是由未alignment的内存访问引起的,但是在上面的情况下,它更可能在固件内存中,即通过PCI-Express总线读取固件。 我当然不相信我的小软件改变可能会导致“总线错误”。 另一个令人惊讶的事实是,不同版本的软件在这个固件上运行良好。 任何人都可以对这个问题提出一些看法。

如何删除一个shell脚本中的string的所有发生的点?

例如hostname =“test.test.test”,那么去除结果后应该像“testtesttest”

Linux内核模块编程:makefile

在学习Linux内核模块的同时,我可以看到两种方式来编写Makefile。 第一个是这样的: ifneq ($(KERNELRELEASE),) obj-m := module.o else default: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules endif 后者不那么复杂: obj-m := module.o all: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules makefile编译导致成功编译模块 。 我的学习伴随着LDD3书,至今我读到的是下一个: 这个makefile在典型的版本上被读取两次。 当从命令行调用makefile时,会注意到KERNELRELEASEvariables没有被设置。 它通过利用已安装模块目录中的符号链接构build指向内核构build树的事实来定位内核源代码目录。 如果你实际上没有运行正在构build的内核,你可以在命令行提供一个KERNELDIR =选项,设置KERNELDIR环境variables,或者重写在makefile中设置KERNELDIR的行。 一旦find内核源代码树,makefile会调用默认:target,它将运行第二个make命令(在makefile中参数化为$(MAKE))来调用内核构build系统,如前所述。 在第二次阅读时,makefile设置obj-m,内核makefiles负责实际构build模块。 如果makefile被读取两次,那么第二种方法应该导致recursion,不是吗?

在linux上启用GD的PHP for imagecreatefromstring函数并发送电子邮件

我已经在Amazon Cloud上部署了我的PHP Web应用程序。 我已经在服务器上安装了PHP和mySql。 但是我的PHP安装不支持在我的开发机器上默认的XAMPP安装中存在的一些function。 不起作用的function是imagecreatefromstringfunction和电子邮件发送function,因为在服务器上安装PHP没有所需的文件需要包括,以便从string创build图像和发送电子邮件。 我已经尝试在服务器上手动安装一些rpm包,但是它们与现有的包相冲突。另外,我对Linux没有太多的了解。 我应该怎么做,我应该在服务器上创build一个新的PHP安装,这次我想我应该用XAMPP进行Linux安装,因为XAMPP安装提供了所有的基本function。 如果可能的话,还有一种方法是将这两个任务所需的一些required.php文件手动放在各自的目录中。 不知道这种方法是否可行。 如果您有类似的经验或知识,请帮助。 具有这些function的脚本在本地Windows开发机器上运行良好。