我想在我的/etc/pf.conf
但是中进行一些编辑后重新启动 pf 服务
rcctl restart pf
不起作用
我想在我的/etc/pf.conf
但是中进行一些编辑后重新启动 pf 服务
rcctl restart pf
不起作用
我正在尝试使用 snap 安装 snapd sudo snap install snapd
,但出现以下错误。
error: cannot communicate with server: Post "http://localhost/v2/snaps/snapd": dial unix /run/snapd.socket: connect: connection refused
我已经尝试多次启用 snapd 服务,当我运行时,systemctl status snapd
这就是我得到的。
Loaded: loaded (/usr/lib/systemd/system/snapd.service; enabled; preset: disabled)
Active: inactive (dead) since Thu 2023-03-30 11:16:08 EDT; 5min ago
Duration: 5.012s
TriggeredBy: ● snapd.socket
Process: 42619 ExecStart=/usr/lib/snapd/snapd (code=exited, status=42)
Main PID: 42619 (code=exited, status=42)
CPU: 77ms
它表明它自 5 分钟前就处于非活动状态,那是我最后一次运行sudo systemctl start snapd.service
。我无法弄清楚为什么它不活动,我还运行sudo systemctl enable snapd.service
以创建符号链接,但我现在无法从 snap 下载任何内容。我收到以下错误
error: cannot communicate with server: Post "http://localhost/v2/snaps/snapd": dial unix /run/snapd.socket: connect: no such file or directory
显然守护进程不活跃,但我无法弄清楚如何在不立即进入非活动状态的情况下保持它的运行。
我正在尝试从命令行启动 VMWare Workstation VM。我可以root
通过运行以下命令在我的用户(不是)下执行此操作
/usr/bin/vmplayer /home/myUser/vmware/myVm.vmx
现在,我想将此 VM 设置为开机启动,因此我创建了一个 /lib/systemd/system/myService.service
包含以下内容的服务:
[Unit]
Description=my vm service
[Service]
User=myUser
ExecStart=/usr/bin/vmplayer /home/myuser/vmware/myVm.vmx
Environment=DISPLAY=:0
[Install]
WantedBy=multi-user.target
如果我从终端(即sudo systemctl restart myService
)运行该服务,我可以看到 VM 窗口弹出并正确启动。但是,如果我重新启动系统,VM 不会启动,这就是status
我得到的
Jan 23 12:55:59 home systemd[1]: Started myService service.
Jan 23 12:56:00 home truenas.sh[848]: [AppLoader] Use shipped Linux kernel AIO access library.
Jan 23 12:56:00 home truenas.sh[848]: An up-to-date "libaio" or "libaio1" package from your system is preferred.
Jan 23 12:56:00 home vmplayer[848]: cannot open display: :0
Jan 23 12:56:00 home systemd[1]: myService.service: Main process exited, code=exited, status=1/FAILURE
Jan 23 12:56:00 home systemd[1]: myService.service: Failed with result 'exit-code'.
我认为DISPLAY=:0
环境可以解决问题,但这是我遇到的错误,我无法解决。
我正在开发嵌入式 Linux 映像。我目前有一个udev
规则来监视 USB 连接/分离事件。如果连接了 USB,则会运行脚本以在设备中搜索upgrade.sh
脚本。
我现在想扩展它以监视系统上的文件夹。如果将文件添加到此文件夹,我想运行一个 shell 脚本。
我不确定从哪里开始,这是另一条udev
规则吗?
问题:
使用以下行启动 cyrus imap 时/etc/cyrus.conf
:
SERVICES {
...
lmtp cmd="lmtpd -a" listen="[192.168.50.100]:lmtp" prefork=1 proto=tcp4
}
要通过 tcp 套接字启用 lmtp,套接字未打开。在日志文件中出现以下消息:
ai_socktype 不支持 Servname,禁用 lmtp
我有一个应用程序,它在启动时从数据库中读取,该数据库由单独的 updater每天更新,由以下systemd
单元描述:
application.service
:
[Unit]
Description=Application reading database
Wants=network-online.target
After=local-fs.target network-online.target nss-lookup.target
[Service]
User=application
Group=application
WorkingDirectory=/var/lib/application
ExecStart=/var/lib/application/application-exec --database /var/db/database.db
StandardOutput=file:/var/lib/application/application.stdout.log
StandardError=file:/var/lib/application/application.stderr.log
StartLimitInterval=60
StartLimitBurst=10
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
updater.service
:
[Unit]
Description=Database updater
Wants=network-online.target
After=local-fs.target network-online.target nss-lookup.target
[Service]
Type=oneshot
User=updater
Group=updater
WorkingDirectory=/var/lib/updater
ExecStart=/var/lib/updater/updater-exec --database /var/db/database.db
StandardOutput=file:/var/lib/updater/updater.stdout.log
StandardError=file:/var/lib/updater/updater.stderr.log
[Install]
WantedBy=multi-user.target
updater.timer
:
[Unit]
Description=Timer for database updater
[Timer]
OnCalendar=*-*-* 03:00:00
RandomizedDelaySec=900
Persistent=true
[Install]
WantedBy=timers.target
我的问题:
如果更新成功执行,如何让更新服务重新启动应用服务(以便应用重新读取现在更新的数据库;成功/失败由更新的退出代码指示)?
这个关于serverfault的问题类似,但遗憾的是没有适用于我的用例的答案。
在 Ubuntu 20.04 安装中,我怎样才能知道为什么某些服务被屏蔽了?只有有关特定服务的答案,但我找不到有关如何解决该行为的任何信息。
现在我掩盖了这些服务:
alsa-utils.service masked enabled
apache-htcacheclean.service masked enabled
apache2.service masked enabled
brltty.service masked enabled
cryptdisks-early.service masked enabled
cryptdisks.service masked enabled
hwclock.service masked enabled
mysql.service masked enabled
pulseaudio-enable-autospawn.service masked enabled
rc.service masked enabled
rcS.service masked enabled
saned.service masked enabled
sudo.service masked enabled
x11-common.service masked enabled
phpsessionclean.timer masked enabled
sudo
顺便说一句,工作正常。
我的意思是避免我的笔记本电脑在暂停后立即唤醒。我设法做到了,如此处所示。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
.
相关:
我有一个长期运行的 systemd 服务,我们称之为db.service
. 它可以在系统启动时启动,但也可以手动重新启动。
我还有一个oneshot
服务,我们称之为它check.service
,它对数据库文件执行完整性检查。
check.service
应该在系统启动时运行,并且在启动过程中如果失败db.service
则不应启动。check.service
但!这里是警告:当使用手动重述check.service
时不应该运行。 即使启动失败,也应该可以手动启动。db.service
systemctl restart db.service
db.service
check.service
有没有办法使用 systemd 服务来实现这一点?
我虽然可以通过使用RequiredBy=db.service
in来实现这一点check.service
。但这仍然会在启动check.service
时触发db.service
。
也许可以通过创建第三个服务 以某种方式解决该问题db-boot.service
,该服务依赖于 bootdb.service
和check.service
. 但我一直无法弄清楚如何。
# firewall-cmd --permanent --add-service=nfs
# filewall-cmd --permanent --add-service=rpc-bind
在 RHEL/CentOS 7.9 中,如果我执行上述操作,防火墙中会打开哪些数字端口号?
服务名称(例如 rpc-bind)到防火墙端口号的映射在哪里定义?
我相信/etc/firewalld/zones/myzone.xml
最终一切都归结为以下内容是否正确?
要么 要么tcp
和udp
一个数字?
# sshd
<port protocol="tcp" port="22"/>
# nfs
<port protocol="tcp" port="2049"/>
<port protocol="udp" port="2049"/>