AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-137608

sancho.s ReinstateMonicaCellio's questions

Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2022-04-07 15:03:39 +0800 CST

启动时自动启动vino-server

  • 0

我正在使用 Bodhi Linux,并vino-server在其中。我可以按照我用来连接到 Ubuntu 机器的相同程序从 Win 10 巧妙地连接。

现在我想vino-server在启动时自动启动。我在 Ubuntu 中使用的(1. 添加vino-server到启动应用程序,2. 让 Gnome 自动登录到我的用户(源))在这里对我不起作用。原因:我找不到在 Bodhi Linux 中启动任意应用程序的方法。我发现如何仅从给定列表中添加启动应用程序,并且vino-server不在其中(来源:“似乎没有一种方法可以在工具中添加自定义命令或脚本,因此如果未自动找到实用程序或应用程序可能需要进一步研究才能添加它”)。

反复发现的其他替代方案(我从未在 Ubuntu 中尝试过)在这里对我不起作用:

  1. 设置~/.config/autostart/vino_server.desktop文件(源)。
  2. vino-server作为服务启动(源)。

我的内容~/.config/autostart/vino_server.desktop是

[Desktop Entry]
Type=Application
Exec=/usr/lib/vino/vino-server
Name=vino Server

我怎样才能使这项工作?
(也许找到一种在启动时添加任意应用程序的方法,上面的方法#1)。

注意:就我而言,我没有$XDG_CONFIG_HOME设置(我确实有很多其他$XDG_...变量)。我不知道这是什么原因,以及这是否可能导致vino_server.desktop登录时无法运行,方法 #1。 据此,“兼容的桌面环境(对于 freedesktop.org / XDG 基本目录规范)将搜索
任何文件并在启动时执行它们。因此丢失可能是一个问题 。OTOH,官方文档指出“定义了基础相对于应该存储用户特定配置文件的目录。如果未设置或为空,则应使用默认值等于。”我不知道后者是否意味着人们应该期望$XDG_CONFIG_HOME/autostart.desktop$XDG_CONFIG_HOME
$XDG_CONFIG_HOME$XDG_CONFIG_HOME$HOME/.config$XDG_CONFIG_HOME始终设置,除非 Moksha(桌面环境)不符合 XDG。

相关:

  1. https://askubuntu.com/questions/178567/how-to-add-a-program-as-a-startup-application-from-a-terminal
  2. https://askubuntu.com/questions/598195/how-to-add-a-script-to-startup-applications-from-the-command-line
  3. https://help.ubuntu.com/stable/ubuntu-help/startup-applications.html.en
  4. https://vitux.com/how-to-manage-startup-applications-in-ubuntu/
  5. https://www.shells.com/l/en-US/tutorial/How-to-Manage-Startup-Programs-on-Ubuntu-Linux
startup vnc
  • 1 个回答
  • 753 Views
Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2022-04-07 05:55:52 +0800 CST

防止通过服务暂停唤醒

  • 0

我的意思是避免我的笔记本电脑在暂停后立即唤醒。我设法做到了,如此处所示。disable_devices_from_wakeup.sh我正在使用的脚本的内容是

#!/bin/bash

declare -a devices=(EHC1 EHC3 OHC1 OHC3)
for device in "${devices[@]}" ; do
    sudo sh -c "echo $device > /proc/acpi/wakeup"
done

现在我想让我的更改在引导期间永久生效。所以我按照这里和这里的描述设置了一个服务。服务放在一起是

$ cat /etc/systemd/system/wakeup_disable_devices.service
[Unit]
Description=Disable devices for wakeup, as a fix to prevent system from waking immediately after suspend

[Service]
ExecStart=/home/user1/Documents/soft-hard-ware/linux-ubuntu/disable_devices_from_wakeup.sh
#ExecStart=/bin/sh -c '/bin/echo EHC1 > /proc/acpi/wakeup'
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

但是在重新启动后,设备仍然可以唤醒。该服务没有按(我猜)它应该运行:

$ systemctl status wakeup_disable_devices.service
 wakeup_disable_devices.service - Disable devices for wakeup, as a fix to prevent system from waking immediately after suspend
     Loaded: loaded (/etc/systemd/system/wakeup_disable_devices.service; disabled; vendor preset: enabled)
     Active: inactive (dead)

我不确定如何继续使更改永久化,并自动应用它们。我不知道问题是否源于sudo我的脚本和/或其他。我也尝试了使用注释行的服务,但它也不起作用,因为cat /proc/acpi/wakeup仍然显示EHC1为enabled.

相关:

  1. https://askubuntu.com/questions/252743/how-do-i-prevent-mouse-movement-from-waking-up-a-suspended-computer
  2. https://askubuntu.com/questions/152403/how-do-i-make-changes-to-proc-acpi-wakeup-permanent
  3. 永久更改`/proc/acpi/wakeup`
  4. https://answerbun.com/
  5. https://mitjafelicijan.com/disable-mouse-wake-from-suspend-with-systemd-service.html
sudo services
  • 2 个回答
  • 203 Views
Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2022-04-07 02:43:01 +0800 CST

笔记本电脑在挂起后立即唤醒

  • 1

我的笔记本电脑在挂起后立即唤醒(或者挂起失败?它们是两种不同的情况吗?)。它是旧的东芝 Satellite C855D-S5105,8Gb RAM。它有一个最近安装的 bodhi Linux(一个 Ubuntu 衍生产品,所以在很多事情上它的工作方式与 Ubuntu 相同)。我找到的解决方案都不起作用。BIOS 中的两个候选项被禁用(Wake on LAN和Wake on Keyboard)。还有一个触摸板,没有鼠标或蓝牙接收器。下面我发布相关信息,并附有来源。

$ uname -a
Linux Orion 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

试图识别唤醒的候选者(假设它挂起并唤醒)。
这里似乎有一些启用唤醒的设备(请参阅this)。

$ cat /proc/acpi/wakeup | grep enabled
Device  S-stateStatus   Sysfs node
OHC1      S3    *enabled   pci:0000:00:12.0       <- ?
OHC3      S3    *enabled   pci:0000:00:16.0       <- ?
EHC1      S3    *enabled   pci:0000:00:12.2       <- ?
EHC3      S3    *enabled   pci:0000:00:16.2       <- ?
LID0      S4    *enabled   platform:PNP0C0D:00    <- Lid

$ lspci | grep "00:1[2,6]."
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11)
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 11)
00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 11)
00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 11)

这里似乎没有启用唤醒的设备(source)。

$ cat /sys/bus/usb/devices/*/power/wakeup
disabled
disabled
disabled
disabled
disabled
disabled
disabled    
$ ll /sys/bus/usb/devices/*/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/1-3/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/usb1/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/usb2/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/usb3/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/usb4/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/usb5/power/wakeup
-rw-r--r-- 1 root root 4,0K abr  6 07:33 /sys/bus/usb/devices/usb6/power/wakeup

试图找出挂起失败的原因。看起来没有失败(如此处),但我不确定它是否真的挂起并醒来,或者它退出挂起(如果它们是两个不同的东西)。

$ journalctl -b | grep -nH suspend
(standard input):1576:abr 06 07:28:55 Orion sudo[1196]:     root : TTY=unknown ; PWD=/home/santiago ; USER=root ; COMMAND=/usr/sbin/pm-suspend
(standard input):1578:abr 06 07:28:58 Orion kernel: PM: suspend entry (deep)
(standard input):1583:abr 06 07:29:04 Orion kernel: printk: Suspending console(s) (use no_console_suspend to debug)
(standard input):1627:abr 06 07:29:04 Orion kernel: PM: suspend exit

添加可能有用的行。看起来在第 1591 行和第 1592 行之间发生了唤醒。

$ journalctl -b | grep -nH -A 40 -B 40 suspend
...
(standard input):1578:abr 06 07:28:58 Orion kernel: PM: suspend entry (deep)
(standard input)-1579-abr 06 07:28:58 Orion kernel: Filesystems sync: 0.191 seconds
(standard input)-1580-abr 06 07:29:04 Orion kernel: Freezing user space processes ... (elapsed 0.004 seconds) done.
(standard input)-1581-abr 06 07:29:04 Orion kernel: OOM killer disabled.
(standard input)-1582-abr 06 07:29:04 Orion kernel: Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
(standard input):1583:abr 06 07:29:04 Orion kernel: printk: Suspending console(s) (use no_console_suspend to debug)
(standard input)-1584-abr 06 07:29:04 Orion kernel: wlp2s0: deauthenticating from d0:6e:de:8e:25:f6 by local choice (Reason: 3=DEAUTH_LEAVING)
(standard input)-1585-abr 06 07:29:04 Orion kernel: sd 0:0:0:0: [sda] Synchronizing SCSI cache
(standard input)-1586-abr 06 07:29:04 Orion kernel: sd 0:0:0:0: [sda] Stopping disk
(standard input)-1587-abr 06 07:29:04 Orion kernel: ACPI: Preparing to enter system sleep state S3
(standard input)-1588-abr 06 07:29:04 Orion kernel: PM: Saving platform NVS memory
(standard input)-1589-abr 06 07:29:04 Orion kernel: Disabling non-boot CPUs ...
(standard input)-1590-abr 06 07:29:04 Orion kernel: IRQ 30: no longer affine to CPU1
(standard input)-1591-abr 06 07:29:04 Orion kernel: smpboot: CPU 1 is now offline
(standard input)-1592-abr 06 07:29:04 Orion kernel: ACPI: Low-level resume complete
(standard input)-1593-abr 06 07:29:04 Orion kernel: PM: Restoring platform NVS memory
(standard input)-1594-abr 06 07:29:04 Orion kernel: LVT offset 0 assigned for vector 0x400
(standard input)-1595-abr 06 07:29:04 Orion kernel: microcode: reload patch_level=0x05000119
(standard input)-1596-abr 06 07:29:04 Orion kernel: Enabling non-boot CPUs ...
(standard input)-1597-abr 06 07:29:04 Orion kernel: x86: Booting SMP configuration:
(standard input)-1598-abr 06 07:29:04 Orion kernel: smpboot: Booting Node 0 Processor 1 APIC 0x1
(standard input)-1599-abr 06 07:29:04 Orion kernel: microcode: CPU1: patch_level=0x05000119
(standard input)-1600-abr 06 07:29:04 Orion kernel: CPU1 is up
(standard input)-1601-abr 06 07:29:04 Orion kernel: ACPI: Waking up from system sleep state S3
(standard input)-1602-abr 06 07:29:04 Orion kernel: [drm] Found smc ucode version: 0x00010601
(standard input)-1603-abr 06 07:29:04 Orion kernel: rtlwifi: rtlwifi: wireless switch is on
(standard input)-1604-abr 06 07:29:04 Orion kernel: [drm] PCIE GART of 1024M enabled (table at 0x0000000000162000).
(standard input)-1605-abr 06 07:29:04 Orion kernel: radeon 0000:00:01.0: WB enabled
...

这里没有 Nvidia 驱动程序。显卡是 ATI Radeon。

$ dpkg -l | grep nvidia
ii  bodhi-background-invidia              0.01                                all          Bodhi Sunshine Invidia

有关的

  1. https://bbs.archlinux.org/viewtopic.php?id=263268
suspend bodhi
  • 1 个回答
  • 822 Views
Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2021-12-09 00:39:09 +0800 CST

使用其外部 IP SSH 到本地 PC

  • 0

我有 PC1 和 PC2,都在 Ubuntu 下,有活动的 SSH 服务器,在同一个路由器后面。为了清楚起见,我将使用不同的 bash 提示。我可以使用本地 IP 从 PC1 SSH 到 PC2。

[user@PC1]$ ssh [email protected]
/user@PC2/$ logout
Connection to PC2 closed.
[user@PC1]$ ssh [email protected]
/user@PC2/$ logout
Connection to PC2 closed.
[user@PC1]$ dig +short myip.opendns.com @resolver1.opendns.com
<External IP>
[user@PC1]$ ssh [email protected]
/user@PC2/$ dig +short myip.opendns.com @resolver1.opendns.com
<External IP>

如何使用外部 IP 进行 ssh(两者都相同?

[user@PC1]$ ssh user@<External IP> ... etc?

如果 PC1 和 PC2 在不同的路由器后面,该过程会与我所做的不同吗?
请注意,我打算学习如何做到这一点,因为我手头有两台 PC,并为将来我不在的场合准备 PC2。

networking ssh
  • 2 个回答
  • 265 Views
Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2021-11-20 03:11:52 +0800 CST

Ufw 允许应用程序:错误:需要 'from' 或 'to' 和 'app'

  • 0

我正在使用 Ubuntu 20.04.3 LTS,虽然这个问题可能不是特定于 Ubuntu,而是任何使用ufw. 我正在为 VNC vino 连接设置规则。我的意思是通过配置的应用程序来做到这一点。我创建/etc/ufw/applications.d/vino-server了以下内容

[Vino Server]
title = “Vino VNC Server”
description = “Vino - Default Ubuntu VNC server”
ports=5900,5901/tcp

接着

$ sudo ufw allow app "Vino Server" from 192.168.0.0/24
ERROR: Need 'from' or 'to' with 'app'

我该如何解决这个错误?

我当时执行

$ sudo ufw allow from 192.168.0.0/24 proto tcp to any port 5900

增加了一行ufw status(见下文),最后允许通过 remmina 进行连接。所以看来我可以连接,只是缺少应用程序方式配置/允许。

$ sudo nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-19 08:03 -03
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
5900/tcp open  vnc

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere                  
5900/tcp                   ALLOW IN    192.168.0.0/24      <--- THIS LINE ADDED    
22/tcp (v6)                ALLOW IN    Anywhere (v6)             

$ sudo ss -ltnp
State        Recv-Q       Send-Q             Local Address:Port              Peer Address:Port       Process                                          
LISTEN       0            5                      127.0.0.1:631                    0.0.0.0:*           users:(("cupsd",pid=727,fd=7))                  
LISTEN       0            128                    127.0.0.1:6010                   0.0.0.0:*           users:(("sshd",pid=9845,fd=11))                 
LISTEN       0            5                        0.0.0.0:5900                   0.0.0.0:*           users:(("vino-server",pid=6594,fd=12))          
LISTEN       0            4096               127.0.0.53%lo:53                     0.0.0.0:*           users:(("systemd-resolve",pid=704,fd=13))       
LISTEN       0            128                      0.0.0.0:22                     0.0.0.0:*           users:(("sshd",pid=7138,fd=3))                  
LISTEN       0            5                          [::1]:631                       [::]:*           users:(("cupsd",pid=727,fd=6))                  
LISTEN       0            128                        [::1]:6010                      [::]:*           users:(("sshd",pid=9845,fd=10))                 
LISTEN       0            5                           [::]:5900                      [::]:*           users:(("vino-server",pid=6594,fd=11))          
LISTEN       0            128                         [::]:22                        [::]:*           users:(("sshd",pid=7138,fd=4))
networking firewall
  • 1 个回答
  • 604 Views
Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2018-09-27 22:26:07 +0800 CST

使用 rsync 删除选定的模式,匹配所有文件

  • 2

我的意思是rsync用来删除某些文件(用于高效删除包含数千个文件的大目录),在这种情况下,将其作为命令行中的模式提供给 shell 脚本。

到目前为止,这就是我的 shell 脚本中的内容rsync_del.sh

#!/bin/bash

TARGET_DIR=${1}
shift
PATTERNS="${@}"
for patt in ${PATTERNS} ; do
    # Both do the same
    #INCLUDE_PATTERNS="${INCLUDE_PATTERNS}"' --include='\'"${patt}"\'
    INCLUDE_PATTERNS="${INCLUDE_PATTERNS} --include=\"${pattern}\""
done

EMPTYDIR=$(mktemp -d)
echo "Created empty dir ${EMPTYDIR}"
comm="rsync -a --progress --delete ${INCLUDE_PATTERNS} ${EMPTYDIR}/ ${TARGET_DIR}"
echo ${comm}
eval ${comm}

我想使用的示例模式是*[1-9].txt,*000??9.txt。问题是,执行时

rsync_del.sh trg_dir '*[1-9].txt'

生成的命令行是

rsync -a --progress --delete --include='*[1-9].txt' /tmp/tmp.51R9hPgkfG/ trg_dir/

(这对我来说似乎没问题),但它是匹配的,例如,文件之类的input.dat(我不想要那个)。

实施/使用它的正确方法是什么? 我怀疑这是正确转义模式的问题,但我无法完成这项工作。

注意:我需要在执行echo之前定义要在变量中执行的命令。

bash shell-script
  • 2 个回答
  • 316 Views
Martin Hope
sancho.s ReinstateMonicaCellio
Asked: 2018-08-01 13:10:45 +0800 CST

bash 回显在命令行本身(不在脚本中)执行的命令行

  • 3

出于文档目的,我的意思是从我执行的命令重定向到文件 stdout 和 stderr。例如,我会运行(我的命令没有别名那么简单,ll但它可能无关紧要):

$ ll > out-err.dat 2>&1
$ cat out-err.dat
drwxr-xr-x 39 us00001 us00001    4096 jul 31 14:57 ./
drwxr-xr-x  3 root    root       4096 feb  2 06:06 ../
-rw-------  1 us00001 us00001   62226 jul 31 11:56 .bash_history
...

同样出于文档目的,我想将我使用的命令行存储在同一个输出文件中。预期的行为和输出是

$ [NEW COMMAND LINE]?
$ cat out-err.dat
[NEW COMMAND LINE]   <- This first line would contain the command line used
drwxr-xr-x 39 us00001 us00001    4096 jul 31 14:57 ./
drwxr-xr-x  3 root    root       4096 feb  2 06:06 ../
-rw-------  1 us00001 us00001   62226 jul 31 11:56 .bash_history
...

如何才能做到这一点? 我知道我可以编写一个 bash 脚本并执行它,因此该命令将单独记录。我可以进一步编写一个脚本来将命令行回显到文件,然后通过重定向到同一个文件来执行它。我正在寻找一种可能的无脚本解决方案。


编辑:反馈一个不错的答案。这不适合作为评论。
我用 command 测试过echo_command ll echo_command.sh ../dir > out-err.dat 2>&1。
Script echo_command.sh,其中 I source,包含函数的定义。
../dir是一个不存在的目录,强制一些输出到stderr.

方法1:效果很好,除了两个问题:

  • 它不理解别名(ll在这种情况下;用ls它替换时)。

  • 它不记录重定向部分。

方法2:效果不好。现在重定向部分也打印出来了,但是命令行打印到屏幕而不是重定向到文件。


编辑:对发布的关于script实用程序的评论的反馈。它用途广泛,使用scriptreplay.
script可以单独调用,它会生成一个交互式 shell(它不会保留父 shell 的最近历史记录)
它也可以称为script -c <command> <logfile>. 最后一种形式与 OP 的目标相对应,但它不会将命令本身存储到日志文件中。它产生(至少在基本情况下)与<command> > <logfile> 2>&1.
所以看起来这在这里没有用。

bash command-line
  • 2 个回答
  • 3154 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve