Articles of 进程

find由nohup命令运行的进程

我使用以下命令"nohup server &"在Centos中运行服务器可执行文件。 现在我需要杀死进程"server" 。 但是我尝试了"ps -a"命令来获得PID但是我无法得到这个过程。 现在如何杀死"server"呢?

在64位ubuntu编译32位汇编程序

我有用32位汇编语言编写的程序…现在我只是不能在64位操作系统上编译它。 在我们的学校他们是具体的,程序必须写在32位版本。 这是我的程序: bits 32 extern _printf global _start section .data message db "Hello world!!", 10, 0 section .text _start: pushad push dword message call _printf add esp, 4 popad ret 任何想法? 我已经尝试了很多方法来编译它。 编译后输出错误: nasm -f elf64 vaja4.asm ld vaja4.o -o vaja4 ./vaja4 输出: vaja4.o: In function `_start': vaja4.asm:(.text+0x7): undefined reference to `_printf'

Linux系统调用创build进程和线程

我在一篇论文中读到,创build进程和线程的底层系统调用实际上是相同的,因此通过线程创build进程的成本并不是很高。 首先,我想知道创build进程/线程的系统调用是什么(可能是示例代码或链接?) 其次,作者是否正确地认为创build进程而不是线程是便宜的? 编辑: 引用文章: 使用进程replacepthread是非常便宜的,特别是在使用相同的底层系统调用调用pthread和进程的Linux上。

如何在Linux中由两个不同的进程调用共享库文件?

在Linux中,我有一个名为foo.so的共享库文件当我执行2个不同的进程p1,p2,它们都使用foo.so. 这个foo.so是否被这两个过程重叠?

一个专门为我的过程核心

可能重复: 如何设置特定pthread的CPU亲和力? 在Linux中有一种方法可以禁用除一个进程之外的所有进程的一个内核吗? 我想只有一个核心保留,只为我的过程。 预期行为如下: 在我的过程后会产生的进程,不应该看到这个核心,并使用其他的。 当我的进程产生时,所有正在使用此内核的进程都应该切换到其他内核。

使用exec在新进程中执行系统命令

我试图产生一个执行系统命令的进程,而我自己的程序仍在继续,两个进程将并行运行。 我正在linux上工作。 我在网上查询,听起来像我应该使用exec()家庭。 但是它不能像我所期望的那样工作。 例如,在下面的代码中,我只看到“之前”被打印,而不是“完成”。 我很好奇,如果我什么都没有问题? #include <unistd.h> #include <iostream> using namespace std; main() { cout << "before" << endl; execl("/bin/ls", "/bin/ls", "-r", "-t", "-l", (char *) 0); cout << "done" << endl; } [UPDATE] 谢谢你们的评论。 现在我的程序看起来像这样。 一切工作正常,除了最后,我不得不按下完成程序。 我不知道为什么我要按最后input? #include <unistd.h> #include <iostream> using namespace std; main() { cout << "before" << endl; int pid […]

为什么在Linux中I / O是不可中断的?

它背后的理由是什么? 如果允许进行I / O的进程处理信号,会有什么坏结果呢?

在Python中查找Linux中特定PID的命令

我想知道是否有可能找出PID设置的“命令”。 当我说命令的时候,我的意思是当你在linux shell中运行“top”命令时,在最后一列中看到的内容。 当我有一个特定的PID时,我想从Python获取这些信息。 任何帮助将是伟大的。 谢谢。

为什么从孩子getppid()返回1

我正在运行程序 #include<stdio.h> #include <unistd.h> main() { pid_t pid, ppid; printf("Hello World1\n"); pid=fork(); if(pid==0) { printf("I am the child\n"); printf("The PID of child is %d\n",getpid()); printf("The PID of parent of child is %d\n",getppid()); } else { printf("I am the parent\n"); printf("The PID of parent is %d\n",getpid()); printf("The PID of parent of parent is %d\n",getppid()); } } […]

用C在Linux的后台启动一个进程

我想在这里做一些有点奇怪的事情。 我需要从deamon开始一个进程logcat,它将在后台运行并打印到terminal,而不用控制stdin。 logcat是非常理想的logcat,它将打印日志消息,同时允许用户input标准命令并从shell初始化程序。 这里是我到目前为止的守护进程的代码。 程序,logcat,启动并显示日志消息,但我不能input任何命令到标准input,因为它似乎程序已经控制了标准input。 int main ( int argc, char** argv, char** env ) { int fd; if ((fd = open("/dev/console", O_RDWR)) < 0) { fd = open("/dev/null", O_RDWR); } printf("THIS IS A TEST\n"); dup2(1, fd); dup2(2, fd); pid_t childpid = fork(); if(childpid == -1) { perror("Failed to fork, logcat not starting"); return 1; […]