小编Gus*_*uss的帖子

通过SSH运行GNU screen,shell不是登录shell?

我在通过 SSH 访问的远程系统上使用 screen(有问题的命名终端会话管理器)来运行长时间运行的进程等。我最终开始使用命令直接附加到 screen 会话,而不是首先通过 SSH 登录,然后启动 screen:

ssh -t hostname screen -xRR
Run Code Online (Sandbox Code Playgroud)

的用途-xRR是附加到现有的屏幕会话(如果可用),否则只需创建一个新会话。问题是,当创建新会话时,它不会被创建为登录 shell:

$ shopt -q login_shell; echo $?
1
Run Code Online (Sandbox Code Playgroud)

因此,.profile与首先使用 SSH 登录然后运行相比,登录会话设置(运行和朋友)未完成,然后部分设置丢失screen- 在这种情况下,SSH 启动的 shell 是一个登录 shell,它设置正确,屏幕我猜继承了环境。

我尝试使用-l屏幕上的标志,该标志被记录为“登录模式”,但它没有帮助 - 我认为它只会更新诸如who.

知道如何让屏幕运行登录 shell 吗?

shell login ssh gnu-screen

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

自动启用使用 deb 安装的 systemd 服务?

我正在构建一堆服务以安装在我自己的(自动创建的)服务器上。我正在从 Ubuntu 14.04 上的 upstart 迁移到 Ubuntu 16.04,其中默认启用服务(如果我们不想在安装时启动,我们必须做额外的工作),到 Ubuntu 16.04,我们希望使用 systemd 作为新的本机服务框架。

这些服务是使用我自己创建的 deb 包安装的。我通过添加和添加一个--with systemd来升级 deb 创建rulespackage-name.servicesystemd 单元规范。

我发现的问题是,即使我添加了一个[Install]带有的部分WantedBy=multi-user.target,该服务也不会在系统上启动。

相反,该服务被安装,然后systemctl status package-name显示:

? package-name.service - My Service
   Loaded: loaded (/lib/systemd/system/package-name.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)

我的.bashrc 中没有任何 systemd 覆盖rules,正如我从带有 systemd 页面Debian 包装以及dh_systemd_enable 手册页中了解到的那样,如果我选择不启用,我可以使用它来启用服务。

同样从状态显示的外观来看,似乎dh-systemd确实启用了服务(供应商预设位),但这还不够。我错过了什么?

ubuntu systemd services deb

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

有图形寻呼机吗?

有人知道可以用来代替lessmore用于查看文本的 GUI 应用程序 (X/GTK+/Qt/whatever) ,特别是从标准输入管道输入的应用程序吗?理想情况下,寻找也可以在 Mac OSX 上运行的东西(甚至可能只在 Mac 上运行)。

我希望向 UNIX 新手介绍命令行文本处理的美妙世界(使用awksedgrep甚至一些perl),使用允许交互式搜索、使用鼠标滚动的漂亮 GUI 向他们显示文本会很有用(我知道大多数 Linux 终端支持较少的鼠标滚动,但 Mac 终端不支持)等。

到目前为止,我发现的最好的事情是将输入通过管道输入zenity --text-info,但该查看器非常有限,甚至不允许搜索。

pager gui

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

当我没有配置它时,为什么 systemd-resolved 回退到在 IPv6 上使用 Google Public DNS?

我在 Ubuntu 18.10 上遇到 SystemD 解析服务的问题 - 在我的无线网络上,我们有一个 IPv6 子网,它通过一些奇怪的网络设置(工作内容)隧道传输,不能用于 DNS 解析。

出于某种原因,即使我已将静态 DNS 配置设置/etc/systemd/resolved.conf.d/dns.conf为仅包含 IPv4 DNS 记录,并且 DHCP 从不通告 IPv6 DNS 服务器,但已解析总是在我的无线连接上向特定于连接的 DNS 配置添加一些时髦的 IPv6 地址,并且然后“回退”到它们并停止解析地址。

这是我的dns.conf(主要resolved.conf是默认的 - 那里什么都没有):

[Resolve]
DNS=172.18.1.254 8.8.8.8 8.8.4.4 1.1.1.1
DNSSEC=no
Run Code Online (Sandbox Code Playgroud)

(第一个DNS地址是本地路由器)

解析的全局配置(可以从 获得resolvectl status):

Global
       LLMNR setting: no
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 172.18.1.254
         DNS Servers: 172.18.1.254
                      8.8.8.8
                      8.8.4.4
                      1.1.1.1
...

Link 2 (wlp2s0)
      Current Scopes: …
Run Code Online (Sandbox Code Playgroud)

networking dns systemd-resolved

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

在 BSD 下解析任意自然语言日期

我正在使用 GNU date 命令来解析任意自然语言日期 - 例如检测某个纪元时间戳是否来自上周,我可以这样做:

if [ "$timestamp" -lt "$(date +"%s" -d "last sunday")" ]; then ...
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试将我的脚本移植到 FreeBSD 时,我如何实现相同的功能?man date没有表现出任何承诺,除非我错过了一些明显的东西。

freebsd date

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

在“批处理模式”中向 debchange 添加多个注释?

我正在尝试为 git 存储库自动化 deb 包构建器,作为其中的一部分,我想获得一堆提交评论(自上一个包发布以来)并将它们放入debian/changelog新版本的多个评论中。

我正在使用这样的dch“批处理模式”:

dch -v ${RELEASE_VER} --distribution stable "comment"
Run Code Online (Sandbox Code Playgroud)

但这仅适用于一条评论。如果我多次运行它,我会得到多个版本条目。

dch手册页说:

如果在命令行上给出更改的文本,debchange 将在批处理模式下运行并简单地添加文本,必要时使用换行符

我不确定“必要时使用换行符”是什么意思,但如果作为第一个非选项参数传递的注释文本包含新行,dch将从文本中删除新行并将其作为单个注释。

scripting deb

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