我知道我可以附加&到一个命令以在后台运行该进程。
我正在 SSH 进入 Ubuntu 12.04 框并运行 python 程序$python program.py &- 但是当我关闭终端窗口时,我收到一条消息,说关闭终端将终止正在运行的进程。
为什么是这样?我正在使用&符号在后台运行该进程。无论我是否通过 SSH 连接,我怎样才能让它运行?
假设您在 Linux 中启动了一个新应用程序(如文本编辑器等),但您忘记使用“&”。您将使用什么命令来使该进程在后台运行,而不必关闭该应用程序?通过这种方式,您可以打开两个进程并单独工作(例如,您用于创建进程的命令行终端和仍在运行的文本编辑器等进程。?
据我所知,所有 linux 进程实际上都是文件,是否可以将正在运行的进程从一台机器复制到另一台机器?
例如 - 将正在运行的 tomcat 服务器从一台机器复制到另一台机器,而无需重新启动服务器
我正在使用 uclinux,我想找出哪些进程正在使用串行端口。问题是我没有lsof或fuser。
有没有其他方法可以获得这些信息?
当您 fork 一个进程时,子进程继承其父进程的文件描述符。我知道当发生这种情况时,子进程会收到一份父文件描述符表的副本,每个表中的指针都指向相同的打开文件描述。这是与文件表相同的东西,如http://en.wikipedia.org/wiki/File_descriptor,还是其他东西?
为什么 lsof 无法列出我打开的文件。例如,我使用文本编辑器打开主目录中的某个文件。
$ gedit ~/.python_history
Run Code Online (Sandbox Code Playgroud)
lsof甚至不能以 root 身份工作
$ sudo lsof | grep python_history
Run Code Online (Sandbox Code Playgroud)
没有列出任何内容。为什么?
编辑和保存文件也没有什么区别。运行 python 解释器也没有什么区别。
$ lsof | grep gedit
Run Code Online (Sandbox Code Playgroud)
确实列出了一堆文件,但没有列出我正在编辑的文件。
如果我想知道谁从什么时候开始登录以及当前在他的控制下运行的进程是什么,我该如何在 systemd 中做到这一点?
我曾经使用pstree类似于以下内容的内容来查找运行 shell 脚本的父模拟器的名称:
pstree -s $PPID | awk -F '---' '{print $6}'
这适用于我当前的系统。我测试过mate-terminal,xterm但不确定这是否适用于其他 Linux 系统/平台和其他终端。有没有更好/更整洁(更便携)的方法来实现这一目标?
当命令或进程似乎挂起、冻结、崩溃或发生其他情况时;有没有办法准确调查它当前在幕后正在做什么(如果有的话)?
对于确定它是否崩溃或者是否只是在执行一项冗长的任务特别有用。如果它的行为不符合预期,它可以帮助排除故障。谢谢。
这两个命令nice和renice管理进程优先级有什么区别?