在 Ubuntu 下,你可以通过以下方式暂停进程
kill -STOP [process ID]
Run Code Online (Sandbox Code Playgroud)
并恢复
kill -CONT [process ID]
Run Code Online (Sandbox Code Playgroud)
但我的问题是,这在系统完全关闭/重新启动后也有效吗?进程 ID 是否会存储在计算机上(并且不会被新进程覆盖)?
或者还有其他可用的替代方案吗?
提前谢谢了,
——斯坦
我一直在进行一些 WebGL 开发,当然,在此过程中偶尔会导致 Chrome 崩溃。
当这种情况发生时,Chrome 中的 WebGL 将无法工作,直到我重新启动我的电脑,这让我觉得即使我关闭了我能看到的每个 Chrome 窗口,它仍然以某种方式运行。
在 Windows 中,我习惯使用任务管理器来确保应用程序实际上已停止运行,Ubuntu 的等效项是什么?
谢谢
编辑从下面的评论中,我写了一个令人困惑/误导性的介绍,所以我正在重写它。
我有一个名为“锁屏计时器”的 bash 脚本,可以在桌面上单击它。30 分钟后,它会锁定屏幕,用户必须输入密码才能解锁屏幕。但是,如果用户改变主意,或者他们想要重置计时器,他们应该能够再次单击桌面快捷方式,并且它应该会终止之前正在运行的正在休眠和倒计时的作业。
到目前为止,我已经做了一些试验和错误,但遇到了障碍。
相关的代码片段是:
pgrep tv-timer > ~/tv-timer.log
PID=$$ # Current Process ID
Run Code Online (Sandbox Code Playgroud)
使用cat ~/tv-timer.log:
16382
20711
Run Code Online (Sandbox Code Playgroud)
其中一个等于上面的“$PID”,但另一个是我想使用的以前运行的副本kill #####。
找出哪个 <> "$PID" 并杀死它的最佳方法是什么?
第一次运行脚本时,只有一个条目等于“$PID”,我不想杀死它。
谢谢你的帮助!
所提出的重复(在的Sametime防止重复脚本运行)是内一个问题家长和儿童的过程。接受的答案冗长而复杂,涉及包装脚本和/或多行代码。
这里寻求的解决方案是一行新代码!
实际上,这里的被接受的答案是基于重复的op尝试,不起作用!
我想运行一个数据收集脚本,对于每个循环:
打开新终端以在其中运行机器人模拟过程
在父终端中运行另一个 process2
当 process2 完成后,关闭所有在 step1 中打开的模拟器终端
我已经阅读了许多其他关于关闭终端的问答。我挣扎的是,我希望在父进程始终运行的情况下保持父终端打开。理想情况下,我希望能够跟踪我的脚本打开的每个子终端,以便我可以选择稍后关闭它们。但是,我也可以只关闭所有其他终端而不检查它们是否是当前脚本的子项,如果这会让我的生活更轻松。
我对如何识别每个终端的了解非常有限。我知道每个进程都有一个进程 ID,但是终端呢?它何时以及如何与进程不同(请参阅下面的示例,该示例让我对终端/进程 ID 感到困惑)?
我尝试使用其他相关问答的答案编写下面的脚本。
parent_terminal=$(xdotool getactivewindow)
echo "parent_terminal: $parent_terminal"
# TODO: start external loop
# open a child terminal(s) and run robot_sim there
#(gnome-terminal -e './robot_sim')
#echo $! --> gives blank..
#./process2
#echo "process2 done. Killing robot_sim.."
# Kill all other terminals except this one (the parent)
xdotool search --class "terminal" | while read id
do
if [ "$id" -eq "$parent_terminal" ]; then
echo "This is parent_terminal $parent_terminal"
echo …Run Code Online (Sandbox Code Playgroud) 我运行时出错 sudo apt-get upgrade
输出错误:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up redis-server (5:4.0.9-1) ...
dpkg-statoverride: error: user 'redis' does not exist
dpkg: error processing package redis-server (--configure):
installed redis-server package post-installation script subprocess …Run Code Online (Sandbox Code Playgroud) 我正在考虑将Ubuntu Server 18.04.2 LTS用作个人家庭服务器。不过,在网上阅读有关Zeitgeist和Unity Dash(在线搜索结果)之类的内容时,我开始有点担心隐私。据我了解,提到的“跟踪”功能仅包含在 Ubuntu 桌面版中(不在服务器版中),但我想知道:
我最近将我的操作系统从 Ubuntu 16 LTS 升级到 Ubuntu 18.04 LTS,几天来,无人值守升级过程占用了大量 CPU 资源,迫使我的风扇变得相当吵闹(参见屏幕截图)
你知道这个进程做了什么、为什么它总是在运行以及为什么它如此贪婪地占用 CPU 资源吗?(它能用所有这些计算能力做什么?)关闭它安全吗?
非常感谢您的帮助!:-)
编辑:我尝试升级 apt-get 并收到以下消息:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Run Code Online (Sandbox Code Playgroud)
无法再使用 sudo,无人值守进程可以使用 sudo 吗?如果是这样为什么这么长时间?
我通过双击下载的文件来调用apt install(of ) 。mysql-workbench.deb
它挂在“准备”阶段,单击“取消”按钮不会执行任何操作。ps aux | grep apt没有发现任何进程正在运行。
我应该寻找什么进程名称,以及如何杀死它?
顶部显示某些 python 脚本正在使用所有计算机资源
遗憾的是,我有不止一个正在运行的 python 脚本。我如何识别它正在从哪个文件运行?
我使用top命令获取了PID
我正在使用 ubuntu 10.04 服务器...
当我以 root 身份运行 ps aux 时,我看到所有进程,当我以非 root 身份运行 ps aux 时,我只看到当前用户的进程
经过一番研究,我找到了以下解决方案:
root@m85:~# ls -al /proc/
total 4
dr-xr-xr-x 122 root root 0 2010-12-23 14:08 .
drwxr-xr-x 22 root root 4096 2010-12-23 13:30 ..
dr-x------ 6 root root 0 2010-12-23 14:08 1
dr-x------ 6 root root 0 2010-12-23 14:08 10
dr-x------ 6 root root 0 2010-12-23 14:08 1212
dr-x------ 6 root root 0 2010-12-23 14:08 1227
dr-x------ 6 root root 0 2010-12-23 14:08 1242
dr-x------ 6 …Run Code Online (Sandbox Code Playgroud)