我使用的是带有 SFTP 和控制台的 Ubuntu VPS。我需要一个特定的进程来仅使用 60% 的 CPU 和 2048 MB 的 RAM。
我还需要另一个进程仅使用 30% 的 CPU 和 1024MB 的 RAM。
如何限制进程的 CPU 和 RAM 使用量?
我使用的是 Ubuntu 21.10。如果我搞砸了,我可以使用 重新运行最后一个命令!!。这是一个例子:
$ apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
$ sudo !!
sudo apt update
[sudo] password for [me]:
...
Fetched 336 kB in 2s (206 kB/s)
Reading package lists... Done
Building dependency tree
Reading state …Run Code Online (Sandbox Code Playgroud) 我有视力障碍,并且在打开 Caps Lock 键的情况下输入了密码。我需要很长时间才能登录,因为我必须尝试多个密码,而且 Ubuntu 不显示我输入的内容。
我想将密码更改为简短的密码,这样我就不太可能输错密钥。
当我尝试使用短密码时,Ubuntu 拒绝我的选择并且不让我继续。
如何输入我选择的 Ubuntu 密码?
所以我有一个这样的脚本:
somecommad | grep --invert-match something
Run Code Online (Sandbox Code Playgroud)
如果失败,我希望能够有条件地运行不同的命令somecommand。这是我尝试过的:
somecommand | grep --invert-match something || {
echo 'Oops'
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用(grep没有执行)。执行此操作的正确方法是什么?
我目前正在 Ubuntu 20.04 机器上工作。当我运行命令时journalctl -u sshd.service,我收到以下响应。
-- Logs begin at Wed 2022-12-21 13:01:52 UTC, end at Fri 2023-03-31 15:10:32 UTC
-- No entries -- .
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时journalctl -u ssh.service,我会获取日志条目。由于sshd.service和ssh.service是不同的 systemd 单元,为什么它不提供任何journalctl -u sshd.service命令条目?
我需要停止 GUI 并访问 NVIDIA 驱动程序的 TTY。我发现了这个问题。然而,当我尝试sudo service lightdm stop(或与 相同gdm)时,它说:
$ sudo service lightdm stop
Failed to stop lightdm.service: Unit lightdm.service not loaded.
$ sudo service gdm stop
Failed to stop gdm.service: Unit gdm.service not loaded.
Run Code Online (Sandbox Code Playgroud)
我不想打扰 Grub,因为我只需要停止 GUI 一次。那么,在 Kubuntu 21.10 中,如何停止 GUI 以使用根本不运行 GUI 的 TTY?
注意:我知道如何访问 TTY。但是一旦我进入 TTY,我就需要停止 GUI,因为 NVIDIA 驱动程序安装程序希望我进入 TTY并且不运行 GUI。
注意:我不是问如何使用不同的文件系统。我想知道选择 ext4 背后的原因。
Ubuntu (21.10) 默认使用 ext4。但是,还有许多其他文件系统具有出色的功能。例如,ZFS 可以对磁盘进行条带化(请参阅 RAID-Z)。还有其他好的,例如 XFS 对于大量文件具有出色的性能。
那么,选择 EXT4 作为默认值的理由是什么?
当我在网上搜索时,我看到了几个类似的问题,但大多数都与 Dock station 有关。我没有使用扩展坞,而是使用 HDMI 转 USB-C 电缆。HDMI 部分连接到外部显示器,USB-C 连接到我的笔记本电脑 (Thinkpad X1 Extreme Gen 2)。该电缆适用于 Windows 操作系统,没有任何问题,但不适用于 Ubuntu。显示器与 HDMI 转 HDMI 电缆配合使用,因此显示器可以正常工作。
我使用了输出journalctl -b,这是插入 USB-C 时的输出;
Mar 31 22:38:11 aydin kernel: usb 1-7: new full-speed USB device number 9 using xhci_hcd
Mar 31 22:38:11 aydin kernel: usb 1-7: not running at top speed; connect to a high speed hub
Mar 31 22:38:11 aydin kernel: usb 1-7: New USB device found, idVendor=25a4, idProduct=9311, bcdDevice= 2.01
Mar 31 22:38:11 aydin …Run Code Online (Sandbox Code Playgroud) 我发现了这个问题,但它谈论的是带有 GUI 的 Ubuntu 版本。我指的是 Ubuntu Server,所以没有 GUI。我也发现了这个问题,但它看起来不会显示命令的输出,而只会显示静态文本。
Ubuntu Server 登录屏幕如下所示:
Ubuntu 22.04 LTS mycomputer tty1
mycomputer login:
Run Code Online (Sandbox Code Playgroud)
但是,我希望它运行一个命令(作为root我的帐户或在我的帐户下 - 您可以选择),然后我希望它在给出登录提示之前打印命令的输出。
例如,如果我的命令是echo Hello world!,我希望它看起来像这样:
Hello world!
Ubuntu 22.04 LTS mycomputer tty1
mycomputer login:
Run Code Online (Sandbox Code Playgroud)
或者这样也可以:
Ubuntu 22.04 LTS mycomputer tty1
Hello world!
mycomputer login:
Run Code Online (Sandbox Code Playgroud)
虽然在我的示例中,但我的命令的输出可以更改 - 不能保证每次都相同,因此我无法将命令的输出硬编码到文件中(在我的例子中,命令是hostname -i,打印 IP 地址)。
我经常需要检查一台机器的IP,如果我不需要登录来检查它会更容易。为了解决这个问题,假设这是家庭网络上的个人服务器,因此泄露 IP 地址不是问题。
如何在命令行登录屏幕中显示命令的输出?
我发现了这个问题,但那个问题使用了 cron - 我想改用 systemd 服务。我docker-compose.yml的在 中/home/me,我用 运行它sudo docker compose up(并用 让它在后台运行tmux),并用 停止它sudo docker compose down。
虽然功能正常,但我宁愿使用 systemd 服务来启动/停止我的docker-compose.yml文件。
如何将我的docker-compose.yml文件变成(工作的)systemd 服务?