小编jwo*_*der的帖子

如何正确安装 systemd 计时器和服务?

我正在尝试在 Bionic 上创建和安装一对自定义的 systemd 计时器和服务单元,用于定期运行命令。我知道应该将文件放入/etc/systemd/system然后我应该运行systemctl daemon-reload,但是我不清楚是否需要启用或启动任何东西才能完全安装和“运行”计时器,以及我可以的几篇文章发现地址这一点都给出了不同的信息。

我的.timer文件是:

[Unit]
Description=Run custom command periodically

[Timer]
Unit=my-custom-command.service
OnCalendar=*-*-* 0/8:00:00

[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)

我的.service文件是:

[Unit]
Description=Run a custom command
OnFailure=mail-systemd-failure@%n.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/custom-command
User=dedicated-user
Group=dedicated-user
Run Code Online (Sandbox Code Playgroud)

我读过的相互矛盾的文章是:

那么我是否启用和/或启动计时器(或其服务?),两者之间究竟有什么区别?根据单元文件是新安装还是在编辑后重新加载,我需要运行的命令是否会发生变化?

systemd

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

如何使双引号表现为死键,除非它与自身结合使用

当我使用键盘时,我期望以下行为(并且我依赖于这些行为):

  • 按下"、松开":应记住该键为死键
  • 按下",松开",按下<space>,松开<space>:应该打印"
  • 按下",松开",按下",松开":应该打印""

我知道这种行为是由键盘布局定义的,所以我做了一些研究。

在键盘布局“English - US with dead keys”上,我得到了我喜欢的前两种行为,但最后一种行为没有得到满足,¨当我尝试这样做时,我得到了奇怪的字符。

在键盘布局“英语 - 美国与 AltGr 死键”上,我只得到最后一个行为,但键不再表现为死键。

如何修改键盘布局以实现我在使用键盘时期望的 3 种行为?

keyboard-layout

14
推荐指数
1
解决办法
2034
查看次数

Ubuntu 16.04 LTS 会有 4.5.2 内核更新吗?

Ubuntu 16.04 LTS 是否会有内核版本 4.5.2 的更新?我安装了 AMD GPU,听说这可以解决 AMD 驱动程序问题。

kernel

11
推荐指数
2
解决办法
1347
查看次数

Ubuntu 如何向外部电子邮件地址发送警报?

我试图了解发送电子邮件的程序。我已经配置了一个 crontab 来将系统警报发送到我的外部电子邮件,并且它工作正常。但是,我没有在这台机器上配置任何 SMTP 服务器,但系统仍然可以向外部电子邮件发送警报。这台机器是全新安装的,仅连接到互联网。

谁能帮助我了解系统如何发送电子邮件?

server email cron

9
推荐指数
1
解决办法
2614
查看次数

“新”对“dpkg --force-confnew”意味着什么?

我最近的任务是维护和移植到 Trusty 一个内部 .deb 包,该包覆盖(使用--force-overwrite)来自具有自定义版本的其他包的配置文件,之后apt-get install -f -y运行以安装一堆列为依赖项的相关包,其中一些他们是这些配置文件的合法所有者(保留你的讽刺评论和对自己的恐惧尖叫)。请注意,此包将配置文件标记为配置文件而不是常规文件。

在尝试清理东西的过程中,我发现如果apt-get通过-o Dpkg::Options::="--force-confold",那么我们自定义包中的配置文件将被依赖项的版本覆盖,而如果-o Dpkg::Options::="--force-confnew"使用,我们包的文件将保留在最后。

然而,dpkg手册页指出:

confnew: 如果 conffile 已被修改并且包中的版本确实发生了变化,则始终安装新版本而不提示,除非 --force-confdef 也指定了,在这种情况下,首选默认操作。

confold: 如果一个 conffile 已经被修改并且包中的版本确实发生了变化,那么总是保持旧版本而不提示,除非 --force-confdef 也指定了,在这种情况下,默认操作是首选的。

因为安装了“新版本”而保留了“旧版本” ,这似乎意味着“新版本”始终是当时正在安装的包中的那个,因此传递-o Dpkg::Options::="--force-confnew"apt-get应该会导致依赖项的配置文件以覆盖我们的软件包之前安装的文件。为什么不是这样?“新版本”的实际含义是否实际上基于时间戳(这只会引发更多问题)?这是文档和/或实现中的错误dpkg吗?这是否只是一个毛茸茸的边缘案例,由两个包声称拥有相同的配置文件,dpkg开发人员认为没有人会疯狂到偶然发现?什么?

package-management dpkg

6
推荐指数
1
解决办法
8009
查看次数

为什么没有通配符“?” 工作?

我正在学习通过 WSL 在 Ubuntu 上使用终端。现在我正在练习通配符,但是?通配符对我不起作用。

正如您所看到的,*通配符有效,但这个无效:

$ ls file*
file.html file.js file.txt
$ ls dot*
dot.txt dot1902.html dot2.txt
$ ls *.html
archivoPruebaClase.html dot1902.html file.html
$ ls dot?
ls: cannot access 'dot?': No such file or directory
$ ls index?
ls: cannot access 'index?': No such file or directory
Run Code Online (Sandbox Code Playgroud)

command-line bash wildcards

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

为什么 Ubuntu 15.10 中的更新信息截至 2016-03-10 已过时?

我今天(2016-10-03)出现了一个感叹号“更新信息已过时”,当我运行更新管理器时,我收到一条错误消息,说它无法下载信息。(顺便说一下,我的互联网连接没有任何问题。)

在此处输入图片说明


命令:sudo apt-get update在尝试更新后给我这个错误消息:

W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release  Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.
Run Code Online (Sandbox Code Playgroud)

谷歌浏览器似乎让我很难受?

updates update-manager 15.10

4
推荐指数
1
解决办法
3623
查看次数

无法删除用户帐户

在终端中:

/home$ ls
abuabdullah  alzaabi  hussain  u942
Run Code Online (Sandbox Code Playgroud)

然后我尝试u942使用命令行删除帐户:

/home$ deluser u942
/usr/sbin/deluser: Only root may remove a user or group from the system.
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用 sudo

/home$ sudo deluser u942
/usr/sbin/deluser: The user `u942' does not exist.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

command-line users user-management

4
推荐指数
1
解决办法
6491
查看次数

“set -eu”在 bash 脚本中起什么作用?

我用谷歌搜索并找不到这种组合的解释。

set -eubash shell 脚本的开始部分做了什么?

(我可以找到一些解释,-e但没有-eu。)

bash

4
推荐指数
1
解决办法
3552
查看次数

如何找到一个包属于哪个 Ubuntu 仓库

长话短说,我想安装 gcc,但它给了我错误,我发现它导致:

Depends: gcc-5-base (= 5.4.0-6ubuntu1~16.04.11) but 5.4.0-6ubuntu1~16.04.12 is to be installed
Run Code Online (Sandbox Code Playgroud)

我试图降级我的 gcc-5-base,这绝对是一个糟糕的想法。

所以计划将 source.list 中的 repo 更改为依赖于5.4.0-6ubuntu1~16.04.12.

我在这个网站上找到了一个:https://launchpad.net/ubuntu/+source/gcc-5/5.4.0-6ubuntu1~16.04.12,但我不知道如何找到相应的 Ubuntu repo。

package-management apt gcc

3
推荐指数
1
解决办法
177
查看次数

sed 报告“未知命令”

我是这样写的:

sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini
Run Code Online (Sandbox Code Playgroud)

这产生了这个错误:

sed: -e expression #1, char 1: unknown command: `'
Run Code Online (Sandbox Code Playgroud)

bash sed

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