小编Mat*_*ock的帖子

如何更改systemd服务超时值?

在我现在工作的公司中,有一个遗留服务,它的 init 脚本使用旧的 SysvInit,但运行在 systemd (CentOS 7) 上。

由于计算量很大,此服务大约需要 70 秒才能完成。我没有为 systemd 配置任何超时,也没有更改默认配置/etc/systemd/system.conf,但是当我执行service SERVICE stop我的服务时,我的服务在 60 秒后超时。

检查journalctl -b -u SERVICE.service我发现这个日志:

Sep 02 11:27:46 service.hostname systemd[1]: Stopping LSB: Start/Stop
Sep 02 11:28:46 service.hostname SERVICE[24151]: Stopping service: Error code: 255
Sep 02 11:28:46 service.hostname SERVICE[24151]: [FAILED]
Run Code Online (Sandbox Code Playgroud)

我已经尝试将DefaultTimeoutStopSec属性更改/etc/systemd/system.conf90s,但超时仍然发生。

有谁知道为什么它会在 60 秒超时?是否还有其他地方配置了此超时值?有什么方法可以检查吗?

该服务与 java 7 一起运行并对其进行守护,它使用JSVC。我-wait用值配置了参数120

centos systemd sysvinit

62
推荐指数
3
解决办法
16万
查看次数

给定用户,如何回家?

我的USER脚本中有一个变量,我想HOME根据该USER变量查看他的路径。我怎样才能做到这一点?

bash users shell-script

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

如何让 tr 了解非 ascii(unicode)字符?

我正在尝试从文件(UTF-8)中删除一些字符。我tr为此目的使用:

tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat 
Run Code Online (Sandbox Code Playgroud)

文件包含一些外来字符(如“??????????”或“àé”)。tr似乎不理解它们:它将它们视为非 alpha 并删除。

我试过更改我的一些语言环境设置:

LC_CTYPE=C LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8 tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些都没有奏效。

我怎样才能tr理解Unicode?

linux text-processing unicode tr

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

如何在字符串中的bash变量后避免空格?

我有一个颜色变量。我用它来为字符串设置颜色,方法是在字符串内部对其进行评估。但是,我需要在名称后包含空格(以便名称不包含部分文本)。这有时看起来很糟糕。

我怎样才能避免使用(打印)这个空间?

示例(让我们说Red=1NC=2):

echo -e "$Red Note: blabla$NC".
Run Code Online (Sandbox Code Playgroud)

输出:

1 Note: blabla2.
Run Code Online (Sandbox Code Playgroud)

预期输出:

1Note: blabla2.
Run Code Online (Sandbox Code Playgroud)

shell bash variable-substitution

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

pass 和 gpg:没有公钥

我使用通行证已经很长时间了;但是在将我的密钥存储和 gpg 密钥导出到另一台机器后,我看到以下输出:

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <shved@lvk.cs.msu.su>
sub   2048R/74270D4A 2015-04-28
Run Code Online (Sandbox Code Playgroud)

我的密钥已导入并受信任,但无法使用:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能再次使用我的密钥?

gpg password-store

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

记住一段时间的 ssh 密钥密码

我创建了 ssh 密钥。我用它来连接 git 存储库。创建密钥时,我注意到提示说密码应该很难猜到。因此,我想出了 40 多个字符长的密码。现在,我每次做的时候git clonepush或任何类似的,我需要输入密码(这需要一些时间,尤其是当我不明白它的权利)。

我当然很高兴我享受安全功能;但是,我更喜欢 ssh 密码缓存 5-15 分钟(或任何其他任意数量);有时我在很短的时间内对存储库进行了很多操作,并且输入密码花费了太多时间。我怎样才能做到这一点?

ssh git

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

程序如何输出到 STDOUT/STDERR 以外的其他地方?如何避免?

显然我不知道所有可用的输出目的地。我知道stdout&1)和stderr&2)。但是,在重定向两个描述符后,有时我的控制台中仍然会得到一些输出!

我能想到的最简单的例子是 GNU Parallel;每次使用它时,我都会看到引用通知。即使我这样做了&2>1 > file,我仍然会看到通知。

这同样适用于emerge:当我运行emerge 并且出现一些问题时,一些信息没有打印到stdoutnor stdin,因为我重定向了它们并且它们仍然通过。

我主要通过使用来解决这些问题script,但我仍然想知道是什么导致了这个问题。

bash terminal io-redirection

18
推荐指数
2
解决办法
3067
查看次数

如何在没有 X 的情况下观看电影/图像?

我想知道是否有一种方法可以在不运行 X 服务器的情况下观看电影或图像。我没有使用登录管理器 - 我登录到 tty 并手动启动 X 服务器。

假设情况:我登录了,但决定只看电影,或者看几张照片。我不想为了这个目的而运行 X 服务器和所有的 GUI 东西。

如何在没有 X 的情况下观看电影/图像?

linux graphics

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

用于粘贴我的命令及其输出的命令

很多时候我想发布一些东西到一个 github 错误,比如

$ ping google.com
PING google.com (216.58.195.238): 56 data bytes
Request timeout for icmp_seq 0
64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms
Run Code Online (Sandbox Code Playgroud)

现在我运行命令,使用screen'sC-a C-[突出显示该区域,enter将其复制到该缓冲区,将其粘贴到vim,将其写入文件,然后将cat其写入pbcopy. 一定有更好的方法。

有没有我可以运行tee的命令,我输入的命令是否以 a 为前缀,$所有输出都为pbcopy?或者任何接近的东西?我设想

$ demo ping google.com
PING google.com (216.58.195.238): 56 data bytes
Request timeout for icmp_seq 0
64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms
^C
$
Run Code Online (Sandbox Code Playgroud)

现在我粘贴的原始内容在我的 mac 剪贴板中。

command-line clipboard

9
推荐指数
2
解决办法
781
查看次数

如何使用git备份多个目录中的文件?

下面的示例被简化以显示问题的核心,而不是问题本身(我的文件树比这更复杂)。

假设我有两个文件要备份;一个在~/somedir/otherdir,另一个在~/otherdir/somedir/。我想从一个 git 存储库中的两个目录备份文件。我怎样才能做到这一点?软链接只携带有关文件存储位置的信息,而不是实际文件,而硬链接对我来说有点陌生。这是应该使用硬链接的情况吗?

说明:我想使用git有四个原因:我想存储文本文件的点文件/脚本/配置并跟踪随时间的变化,我知道 git,我有一个私有的 git 存储库可以用来存储它们,以及我希望能够在多台 PC 之间共享这些文件。

backup git

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