我在 Lenovo T450s 上全新安装了 16.04.1,它在 Ubuntu 上的挂起/休眠方面始终运行良好(我使用的先前版本是 14.04.5)。在此安装中,Swap 比 RAM 大得多。
正如我现在习惯的那样,安装后我尝试继续使用通常的休眠激活方法。不过,这次sudo pm-hibernate
好像什么都没有做,事情似乎有些不同。
据我了解,现在 ubuntu 已经切换到 systemd,正确的命令是systemctl hibernate
返回
Failed to hibernate system via logind: Sleep verb not supported
Run Code Online (Sandbox Code Playgroud)
我尝试了这里提到的解决方案,但它们主要是为了重新启用pm-hibernate并使其成为注销菜单中的一个条目。我还看到一种可能的解决方案是安装 Tuxonice 内核,但没有尝试,因为我不太热衷于篡改内核,尤其是使用 PPA 内核。
那么,有没有办法在最后一个基于 systemd 的 Ubuntu 版本上重新激活休眠?最好使用 systemd,并避免潜在的系统破坏性黑客攻击。还是我只需要等待并希望直到下一次更新?
14.04的init系统在发布之前有很多讨论,但我找不到任何最终解释结果的站点。
那么 Ubuntu 14.04 现在使用 systemd 了吗?
$ sudo service cassandra status
? cassandra.service - LSB: distributed storage system for structured data
Loaded: loaded (/etc/init.d/cassandra; bad; vendor preset: enabled)
Active: active (running) since Wed 2016-10-12 15:54:40 IDT; 4min 4s ago
Run Code Online (Sandbox Code Playgroud)
bad;输出第二行的部分代表什么?我为许多服务获得了这个,例如 mysql、winbind、virtualbox,其中一些我已经完美地使用了(cassandra 是全新安装的)。
root@gcomputer:~# systemctl status x11-common
? x11-common.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
我试过了systemctl unmask x11-common,systemctl unmask x11-common.service但这并没有改变任何东西。
我如何揭开它的面纱?
将我的 16.04 安装升级到 16.10 后,DNS 出现问题。
首先,我在连接到 WiFi 时遇到了几次问题,而它在以太网上工作。现在它似乎也适用于 WiFi。不知道为什么,如果它与我现在面临的问题有任何关系:
当使用Cisco Anyconnect VPN连接到 VPN 主机时,它会在 '/etc/resolv.conf' 中添加一行。我知道 Ubuntu 现在正在使用systemd-resolve,并且手册页说有三种不同的模式来处理 /etc/resolv.conf。我的 /etc/resolv.conf 不是符号链接,也没有将 127.0.0.53 列为 DNS 服务器,所以据我所知 systemd-resolved 应该“读取它以获取 DNS 配置数据”。不过,它似乎并不在意。
奇怪的事情(对我来说)是dig host.customer.tld,返回一个很好的答案,其中包含一个显示所请求主机的 ip 的 ANSWER SECTION,它指的是由 vpn 客户端添加到 /etc/resolv.conf 的 dns 服务器作为服务器。当 vpn 连接被禁用时,我没有得到答复。即dig 读取 /etc/resolv.conf。
另一方面,浏览器无法访问 /etc/resolv.conf,并且无法解析主机名。顺便说一下,ping/curl 也不是。
我找到了一个相关的帖子,并尝试运行
nmcli device show <interfacename> | grep IP4.DNS
Run Code Online (Sandbox Code Playgroud)
但它没有列出 cscotun0 设备的 dns。(不过,它在 16.04 中也没有。)此外,nmcli 将我的 dhcp …
Ubuntu 22.04systemd-oomd默认情况下启用了该服务,每当我尝试使用大量线程/内存编译应用程序时,该服务都会“帮助”杀死我的 IDE 和/或终端。
关闭此功能或将服务配置为在我使用它们时不向随机进程射击的正确方法是什么?
我知道我可以通过几种方式减轻这种行为;例如,通过增加交换空间的大小,但这仍然不是万能的,因为:
OOM守护进程会杀死整个进程树,因此即使是托管被杀死进程的终端也会突然消失;
OOM 守护进程会在不向用户提供任何通知的情况下杀死进程树,因此用户只知道他们的终端/IDE/应用程序托管的内存消耗大的进程突然消失了。
如果用户知道要查找什么,journalctl他们可以通过或类似的方式找出事后发生的情况,但我认为普通 Ubuntu 桌面用户不会考虑这样做。
举个例子,通常当进程因致命信号或类似信号而崩溃时,崩溃报告者会告诉用户出了问题。难道不应该有一个类似的工具来处理被 OOM 守护进程杀死的进程吗?
编辑以添加请求的输出:交换空间;据我所知,这些只是安装 Ubuntu 22.04 时设置的默认值。
$ free -h
total used free shared buff/cache available
Mem: 31Gi 5.2Gi 3.1Gi 210Mi 23Gi 25Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
$ sysctl vm.swappiness
vm.swappiness = 60
$ swapon -s
Filename Type Size Used Priority
/swapfile file 2097148 792 -2
Run Code Online (Sandbox Code Playgroud) 很简单,我正在尝试更改运行级别。我在网上找到的所有内容都指向位于以下位置的文件:
/etc/init/rc-sysinit.conf
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试将“DEFAULT_RUNLEVEL”更改为 3 或其他任何值,但没有任何区别(原始值为 2,这也没有多大意义)。无论如何,我的机器完全启动,当我检查运行级别命令时,我每次都看到“N 5”作为结果。
如何更改运行级别?我宁愿不通过 grub 或其他一些变通机制来覆盖它。而且我不是在寻找如何专门禁用 X。
我在网上找到的所有说明都有些旧,16.04 有什么变化吗?
我正在使用本教程将包从 .rpm 转换为 .deb 。但是,要测试和调试应用程序,我需要运行它。程序自述文件解释了如何将其作为服务运行:
systemctl enable progname.service
systemctl start progname.service
Run Code Online (Sandbox Code Playgroud)
这些命令在 ubuntu 上的等价物是什么?
openvpn使用单元文件中的确切ExecStart=调用从命令行开始正常systemd:
/usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf /run/openvpn/server.pid
Run Code Online (Sandbox Code Playgroud)
ps ax 确认进程在那里:
1634 ? Ss 0:00 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/
Run Code Online (Sandbox Code Playgroud)
但systemctl start openvpn@server没有成功:
? openvpn@server.service - OpenVPN connection to server
Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2016-03-17 09:54:52 UTC; 4s ago
Docs: man:openvpn(8)
https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
https://community.openvpn.net/openvpn/wiki/HOWTO
Process: 1679 ExecStart=/usr/sbin/openvpn --daemon ovpn-server --status …Run Code Online (Sandbox Code Playgroud) 使用 systemctl status 命令后如何恢复命令行提示?该命令似乎成功了,因为它显示了所请求服务的状态信息。但是,终端在使用该命令后似乎锁定。