标签: systemd

使用 systemd 在启动时运行 Flask 应用程序

我有以下 systemd 服务来运行我的 Flask 应用程序:

[Unit]
Description=My Flask server
After=network.target

[Service]
User=ubuntu
ExecStart=/home/ubuntu/my-server/script.py
WorkingDirectory=/home/ubuntu/my-server/
Restart=on-failure
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

然而,当我跑步时

systemctl start my-server.service
Run Code Online (Sandbox Code Playgroud)

我得到以下状态

my-server.service - My Flask server
   Loaded: loaded (/etc/systemd/system/my-server.service; enabled; vendor preset: enabled)
   Active: active (exited) (Result: exit-code) since Wed 2017-06-21 22:24:18 UTC; 8min ago
 Main PID: 8407 

(code=exited, status=203/EXEC)
Run Code Online (Sandbox Code Playgroud)

如何防止 Flask 服务器退出?当我直接运行脚本时

/home/ubuntu/my-server/script.py
Run Code Online (Sandbox Code Playgroud)

效果很好。但如果我用 systemd 运行它,服务器会立即退出。

python flask systemd

5
推荐指数
1
解决办法
2万
查看次数

openvpn 卡在 systemd-tty-ask-password-agent

尝试启动 openvpn,但我不断收到此消息:

Broadcast message from root@Media (Thu 2017-08-03 07:28:29 EDT):

Password entry required for 'Enter Auth Password:' (PID 31285).
Please enter password with the systemd-tty-ask-password-agent tool!
Run Code Online (Sandbox Code Playgroud)

如果我保持 openvpn 进程运行,我可以输入该命令,但是无论我在用户名中输入什么,都不会执行任何操作......它只会让我回到终端行。如果我再次将 放入命令中,它会再次要求输入密码......接受我放入其中的任何内容并且不执行任何操作。

如果我此时停止 openvpn 进程并尝试该命令,它什么也不做......它不会问我任何事情。

vpn openvpn systemd

5
推荐指数
0
解决办法
3606
查看次数

列出启用的服务实例

我想列出所有已启用的服务实例。

下面列出了启用的服务,但仅显示服务,而不显示单个实例:

systemctl list-unit-files --state=enabled
Run Code Online (Sandbox Code Playgroud)

以下列出了所有正在运行的实例:

systemctl list-units --state=running
Run Code Online (Sandbox Code Playgroud)

我希望像下面这样显示启用的实例:

systemctl list-units --state=enabled
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

因此,如果我启动两个服务实例:

systemctl start foo-service@primary
systemctl start foo-service@secondary
Run Code Online (Sandbox Code Playgroud)

...但是我只启用一个:

systemctl enable foo-service@secondary
Run Code Online (Sandbox Code Playgroud)

我能够找出启用了哪些实例的唯一方法是:

ls /etc/systemd/system/multi-user.target.wants/
Run Code Online (Sandbox Code Playgroud)

但这看起来很混乱。有没有系统方法可以做到这一点?如果重要的话,版本是 232。

multiple-instances services systemd 17.04

5
推荐指数
2
解决办法
5166
查看次数

为什么我的驱动器没有列在 /dev/disk/by-uuid 和 by-label 下?

从 Ubuntu 16.04.2 升级到 16.04.3(内核 4.4.0-64 到 4.4.0-112)后,我的一个驱动器在启动后无法安装。

我尝试使用旧内核重新启动,但问题仍然存在 - 所以也许不是由于升级,而是重新启动(已经有一段时间了)。

症状
/dev/sdg1 启动后在 /dev/disk/by-uuid、/dev/disk/by-label 中没有条目。

控制台输出

Timed out waiting for device dev-disk-by ....
Dependency failed for File System Check on /dev/disk/by-label/data_raid1_05
Run Code Online (Sandbox Code Playgroud)

系统日志

Jan 31 16:52:15 srv009 systemd[1]: dev-disk-by\x2dlabel-data_raid1_05.device: Job dev-disk-by\x2dlabel-data_raid1_05.device/start timed out.
Jan 31 16:52:15 srv009 systemd[1]: Timed out waiting for device dev-disk-by\x2dlabel-data_raid1_05.device.
Jan 31 16:52:15 srv009 systemd[1]: Dependency failed for /mnt/data_raid1_05.
Jan 31 16:52:15 srv009 systemd[1]: mnt-data_raid1_05.mount: Job mnt-data_raid1_05.mount/start failed with result 'dependency'.
Jan 31 16:52:15 srv009 systemd[1]: …
Run Code Online (Sandbox Code Playgroud)

mount systemd

5
推荐指数
0
解决办法
3349
查看次数

什么令人讨厌的 systemd-udevd 使我的 CPU 过载?

Top会给我以下信息:(PID 28055 的 94% CPU 负载)

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                            
28055 root      39  19 1295192 1,167g   3120 R  93,8  7,5  65:49.38 systemd-udevd   
Run Code Online (Sandbox Code Playgroud)

当我这样做时,strace -p 28055我会得到以下几行无限重复:

getrandom("\246\306\216<\340\244a\256|\34\352\257\334\223\227\304", 16, GRND_NONBLOCK) = 16
getrandom("j\216\331 \361|X\241\333\270\260\202\377\224\3537", 16, GRND_NONBLOCK) = 16
getrandom("\36\301\27vkE\351\16\336\23\314\366y\t\272\307", 16, GRND_NONBLOCK) = 16
getrandom("U\234\235\2763\3257\37\314q\301\272i\301W\t", 16, GRND_NONBLOCK) = 16
getrandom("\223\27\244\26\365\251\335\263\233.\347\3\263]\205\4", 16, GRND_NONBLOCK) = 16
getrandom("\366,{+Tt\t\27\16z\257N^\235r,", 16, GRND_NONBLOCK) = 16
epoll_wait(10, [{EPOLLIN, {u32=798983008, u64=94889511453536}}], 11, 0) = 1
clock_gettime(CLOCK_BOOTTIME, {7011, 470364038}) = 0 …
Run Code Online (Sandbox Code Playgroud)

cpu-load udev systemd

5
推荐指数
1
解决办法
3917
查看次数

块设备的可用性超时

在新安装的Ubuntu 18.04(64 位)服务器上,blk-availability.service总是因关闭时超时而终止。

我认为该服务的依赖性很差,但我不知道对此的良好关闭顺序是什么。

Xenial上也有几乎相同的配置......

磁盘子系统是

  • NVMe 固态硬盘(三星 970 EVO MZ-V7E250BW)
    • EFI分区
    • 启动分区
    • LVM物理卷
      • 逻辑卷
      • 交换逻辑卷
      • 数据逻辑卷
  • 2个。RAID1 中的硬盘(md0尚未使用

杂志

systemd[1]: Stopped Load/Save Random Seed.
systemd[1]: Stopped Update UTMP about System Boot/Shutdown.
systemd[1]: Stopped Network Time Synchronization.
kernel: usb 1-13: USB disconnect, device number 2
systemd[1]: blk-availability.service: Stopping timed out. Terminating.
systemd[1]: blk-availability.service: Control process exited, code=killed status=15
blkdeactivate[2447]:   [MD]: deactivating raid1 device md0... resync …
Run Code Online (Sandbox Code Playgroud)

shutdown lvm raid systemd 18.04

5
推荐指数
0
解决办法
6290
查看次数

将 16.04 服务器更新到 18.04.1,现在我看到有关丢失文件、无法解析 dns、无法连接到总线的奇怪错误

好的,这是从 16.04.1 LTS 到 18.04.1 LTS 的升级,服务器是无头的。升级完成并重新启动后,会发生以下情况:

\n\n

尝试升级软件包只会导致以下结果:

\n\n
~$ sudo apt upgrade\nReading package lists... Done\nBuilding dependency tree\nReading state information... Done\nCalculating upgrade... Done\nThe following packages will be upgraded:\n  policykit-1 screen smartmontools\n3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.\n1 not fully installed or removed.\nNeed to get 0 B/1,081 kB of archives.\nAfter this operation, 147 kB of additional disk space will be used.\nDo you want to continue? [Y/n] y\n\n(Reading database ... 159133 files and directories currently installed.)\nPreparing …
Run Code Online (Sandbox Code Playgroud)

upgrade dbus systemd 18.04

5
推荐指数
1
解决办法
1万
查看次数

Ubuntu 18.04:有没有办法指定 DNS 服务器顺序?

我们使用 Digital Ocean,它在额外的外部网络中提供高速内部网络。内网使用10.136.0.0/16。

不幸的是,Digital Ocean 不提供水平分割 DNS。当内部服务器解析另一个内部服务器并且它们都可以通过 10.136.0.0/16 网络进行通信时,我们希望建立自己的 DNS 服务器来响应内部地址。不过,我们希望我们的 DNS 服务器出现单点故障,因此我们希望在配置中保留 Digital Ocean 的 DNS 服务器,但优先级较低。

有没有办法指定 DNS 服务器的优先级?例如,对于我们的域名 www.example.com,我们是否可以在尝试 Digital Ocean 的 DNS 之前先将这些查询定向到我们的内部 DNS?

networking dns systemd netplan

5
推荐指数
1
解决办法
4683
查看次数

如何修复 nohup、byobu、tmux、screen 等,使其在与 SSH 断开连接时不会死机?

我正在运行 KDE Neon,它是 Ubuntu 18.04 Bionic (LTS),其上有最新的 KDE 桌面软件包。

自从从 Xenial 升级到此版本以来,我失去了进程在 SSH 会话断开连接后继续存在的能力...特别是 nohup、tmux、screen、byobu 及其所有子进程在断开连接时都会被杀死。

这是一个简单的测试来演示这个问题

# connect over ssh
cd /tmp
nohup watch date &
ps -ef | grep watch
# disconnect and reconnect
ps -ef | grep watch # process is gone
Run Code Online (Sandbox Code Playgroud)

我尝试将 tmux 和 byobu 恢复到旧版本,然后发现 nohup 也受到影响。这让我相信它要么是 SSHd 配置,要么是 systemd。

显然,systemd 决定更改其默认行为,以便在用户前一段时间断开连接时核对所有用户进程。我尝试通过编辑 /etc/systemd/logind.conf 并设置 KillUserProcesses=no 然后重新启动(服务 systemd-logind 重新启动不起作用)来恢复该行为。没用……我已经束手无策了。

帮助!

ssh tmux nohup systemd-logind systemd

5
推荐指数
2
解决办法
2632
查看次数

在 Ubuntu 19.04 上取消 root 屏蔽(“-.mount”)是不合理的

最近更新后,我在使用 Ubuntu 19.04 的不同机器上遇到了这个问题,并且在我的 DVD 和 USB 驱动器开始安装时出现问题后,我变得非常好奇。

\n\n

在处理过程中apt我看到:

\n\n
   GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit -.mount is masked.\n
Run Code Online (Sandbox Code Playgroud)\n\n

此消息会在不同时间出现。我担心这与最近可移动媒体自动安装失败有关。例如:

\n\n
 $ sudo apt update\n Hit:1 http://au.archive.ubuntu.com/ubuntu disco InRelease\n Get:2 http://au.archive.ubuntu.com/ubuntu disco-updates InRelease [97.5 kB]                                                              \n Get:3 http://au.archive.ubuntu.com/ubuntu disco-backports InRelease [88.8 kB]                                                            \n Hit:4 https://dl.yarnpkg.com/debian stable InRelease                                                                                     \n Ign:5 http://dl.google.com/linux/chrome/deb stable InRelease                                                                             \n Get:6 http://security.ubuntu.com/ubuntu disco-security InRelease [97.5 kB]                                                               \n Hit:7 http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu disco InRelease                                              \n Hit:8 http://dl.google.com/linux/chrome/deb stable Release                                                                               \n Hit:10 https://packages.microsoft.com/repos/vscode stable InRelease                                                                      \n Hit:11 http://ppa.launchpad.net/teejee2008/ppa/ubuntu disco InRelease                                      \n …
Run Code Online (Sandbox Code Playgroud)

usb-drive mount systemd

5
推荐指数
0
解决办法
1569
查看次数