apt dist-upgrade在 Ubuntu Server 22.04.3 中以 root shell运行后,有时Which services should be restarted?会出现此问题。例子:
Restarting services...
Daemons using outdated libraries
--------------------------------
1. dbus.service 2. getty@tty1.service 3. multipathd.service 4. networkd-dispatcher.service 5. packagekit.service 6. polkit.service 7. ssh.service 8. systemd-logind.service 9. systemd-manager 10. thermald.service 11. unattended-upgrades.service 12. user@1000.service 13. none of the above
(Enter the items or ranges you want to select, separated by spaces.)
Which services should be restarted? 1-13
Which services should be restarted? 1 - 13
Which services should …Run Code Online (Sandbox Code Playgroud) 有一些守护进程是我零使用的,并且希望阻止自动启动,其中包括 avahi、zeitgeist、telepathy、apport 等。不用说我不希望他们开始。可以在不卸载它们的情况下实现这一点吗(仍然存在依赖关系,我什至相信当我真正需要它们时可能会发生)?
最近,我从 Ubuntu 16.04 x64 的终端窗口运行了一个长时间运行的脚本。当我离开系统时,它最终在我将其配置为 20 分钟后自动暂停System Settings窗口中,这具有暂停脚本的效果。当我返回系统时,我意识到由于系统暂停,我的脚本执行的几个小时进度丢失了。
一种解决方法是Don't suspend在Power设置窗口中手动选择System Settings。这种防止挂起的方法并不令人满意(1)因为我经常忘记这样做,以及(2)因为它使我屈从于我的系统。
也许有一个滑头,但与某种前缀的命令,我会打电话给这样做的还是手动的方式nosuspend就目前来看,这种用法:nosuspend python myscript.py arg1 arg2。我对这个神秘命令的主要抱怨是它仍然要求我记得使用它,并且由于在所有终端命令前加上前缀是不合理的,因此必须预测脚本是否需要 1 分钟或 1 小时才能运行,并且这个预测可能是不正确的,再次导致时间损失和沮丧。
理想情况下,该解决方案将防止挂起,直到从终端窗口运行的所有命令完成。在某种程度上,我意识到这是不可能的,因为终端窗口中的 bash 进程很可能有一个我们可能不想阻止睡眠的子进程,例如,sudo su在终端窗口中执行的仍在运行,即使我们当前可能没有使用它,因此是空闲的,但我们仍然希望系统在 20 分钟后自动挂起,比如说。因此,存在定义暂停标准的问题。
我必须指出,有问题的 Python 脚本只有零星的磁盘、网络,并且几乎没有 CPU 工作,因为它重复 Python time.sleep() 调用,每次调用最多不到一分钟。因此,我并不是特别在寻找仅检测磁盘、网络或 CPU 中“相当”静止状态的方法。也许有一种方法来检测,如果是终端的子进程的命令取得任何进展在所有的间隔(希望在被配置在同一间隔期间Power上文)。希望这能将我的脚本与上述空闲的sudo su反例区分开来。
更新 1(2016 年 9 月 14 日):
正如下面 Adrine Correya 所推荐的,我尝试了systemd-inhibit,这听起来像nosuspend上面想象的那样,但没有奏效。这就是我所做的。首先,我创建了一个名为“long-job.py”的 Python 测试脚本:
#!/usr/bin/python3
import time
print("starting")
for i …Run Code Online (Sandbox Code Playgroud) 我创建了一个/etc/rc.local:
$ cat /etc/rc.local
#!/bin/bash
echo "Starting"
randomString=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
echo "Finished"
Run Code Online (Sandbox Code Playgroud)
这在交互式运行时运行:
$ /etc/rc.local
Starting
Finished: lkFcvByNaIu7zmxuCYB3BQmJ05LwuVWL
Run Code Online (Sandbox Code Playgroud)
但是,当从 systemd 运行时,它会挂起并且不会返回。
如果我 ctrl+C 看起来它挂在fold命令上:
$ systemctl status rc-local
? rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enabl
Drop-In: /lib/systemd/system/rc-local.service.d
??debian.conf
Active: activating (start) since Mon 2019-03-11 12:04:06 UTC; 12s ago
Docs: man:systemd-rc-local-generator(8)
Cntrl PID: 936 (rc.local)
Tasks: 5 (limit: 1152)
CGroup: /system.slice/rc-local.service …Run Code Online (Sandbox Code Playgroud) 我一直在尝试通过本地socks5代理运行docker,我尝试设置环境变量如下:
export ALL_PROXY=127.0.0.1:1080
Run Code Online (Sandbox Code Playgroud)
但这没有什么区别,就好像 Docker 没有读取它一样,我也尝试将配置放入~/.docker/config.json:
{
"proxies":
{
"default":
{
"httpProxy": "socks5://127.0.0.1:1080"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这也行不通。有什么问题以及如何在 Ubuntu 上使用ocks5代理运行 Docker?