ubuntu,自动休眠后,程序自动暂停。如何破?

发布于:2024-12-21 ⋅ 阅读:(19) ⋅ 点赞:(0)

昨天挂机想让出图,今天一看,不错,有一张。原来是机器休眠了,暂停了。

在Ubuntu系统中,当计算机进入休眠状态后,所有正在运行的应用程序都会被暂停,包括图形处理程序。为了避免这种情况,你可以采取以下几种方法来确保你的作图程序在系统休眠后能够继续运行:

### 方法一:禁用系统休眠

如果你不希望系统进入休眠状态,可以禁用休眠功能。

#### 1. 编辑 `/etc/systemd/sleep.conf`
打开终端并编辑 `/etc/systemd/sleep.conf` 文件:

```bash
sudo nano /etc/systemd/sleep.conf
```


添加或修改以下行以禁用休眠:

```ini
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
```


保存并退出编辑器(在nano中按 `Ctrl+O` 保存,然后按 `Ctrl+X` 退出)。

#### 2. 更新 systemd 配置

更新 systemd 配置以应用更改:

```bash
sudo systemctl daemon-reload
```


### 方法二:使用 `nohup` 或 `screen`

你可以使用 `nohup` 或 `screen` 来运行你的作图程序,这样即使你关闭终端或系统进入休眠状态,程序也会继续运行。

#### 1. 使用 `nohup`

`nohup` 可以让你的程序在后台运行,并且不受终端关闭的影响。

```bash
nohup python auto_save_jpg.py &
```


#### 2. 使用 `screen`

`screen` 是一个终端复用工具,可以在断开连接后继续运行程序。

##### 安装 `screen`

如果没有安装 `screen`,可以使用以下命令进行安装:

```bash
sudo apt-get install screen
```


##### 创建一个新的 `screen` 会话

```bash
screen -S mysession
```


##### 在 `screen` 会话中运行你的程序

```bash
python auto_save_jpg.py
```


##### 分离 `screen` 会话

按 `Ctrl+A` 然后按 `D` 键来分离当前的 `screen` 会话。

##### 查看已有的 `screen` 会话

```bash
screen -ls
```


##### 重新连接到 `screen` 会话

```bash
screen -r mysession
```


### 方法三:使用 `systemd` 服务

你可以将你的作图程序配置为一个 `systemd` 服务,这样它可以作为后台进程运行,并且不会受到系统休眠的影响。

#### 1. 创建一个新的 `systemd` 服务文件

创建一个新的服务文件,例如 `/etc/systemd/system/auto-save-jpg.service`:

```bash
sudo nano /etc/systemd/system/auto-save-jpg.service
```


添加以下内容:

```ini
[Unit]
Description=Auto Save JPG Service
After=network.target

[Service]
ExecStart=/usr/bin/python3 /home/duyicheng/gitee/ComfyUI/auto_save_jpg.py
WorkingDirectory=/home/duyicheng/gitee/ComfyUI/
StandardOutput=append:/var/log/auto-save-jpg.log
StandardError=inherit
Restart=always
User=duyicheng

[Install]
WantedBy=multi-user.target
```


根据实际情况调整 `ExecStart` 和 `WorkingDirectory` 的路径。

#### 2. 启用并启动服务

启用并启动服务:

```bash
sudo systemctl enable auto-save-jpg.service
sudo systemctl start auto-save-jpg.service
```


#### 3. 查看服务状态

检查服务的状态以确保它正在运行:

```bash
sudo systemctl status auto-save-jpg.service
```


### 方法四:调整电源管理设置

你可以调整系统的电源管理设置,使其在特定条件下不进入休眠状态。

#### 1. 使用 `gnome-tweaks`

如果你使用的是 GNOME 桌面环境,可以安装 `gnome-tweaks` 来调整电源管理设置。

##### 安装 `gnome-tweaks`

```bash
sudo apt-get install gnome-tweaks
```


##### 打开 `gnome-tweaks`

在应用程序菜单中找到并打开 `Tweaks`,然后导航到 `Power` 标签页,调整电源管理设置。

#### 2. 修改 `logind` 配置

编辑 `/etc/systemd/logind.conf` 文件来调整电源管理设置:

```bash
sudo nano /etc/systemd/logind.conf
```


取消注释并修改以下行:

```ini
HandleLidSwitch=ignore
IdleAction=ignore
```


保存并退出编辑器,然后重启 `systemd-logind` 服务:

```bash
sudo systemctl restart systemd-logind
```


### 总结

以上方法可以帮助你在Ubuntu系统中解决作图程序在系统休眠后自动暂停的问题。根据你的具体需求和使用习惯选择合适的方法。如果你不希望系统进入休眠状态,禁用休眠是最直接的方法;如果你需要远程访问或在后台运行程序,使用 `nohup`、`screen` 或 `systemd` 服务更为合适。