小编Has*_*own的帖子

子进程中的 Ctrl+c 正在终止脚本中较早的 nohup 进程

我不知道这是否属于 SO(因为它是一个编码错误),但我认为你们会更了解所用软件的微妙之处(因此甚至可以考虑 U&L)。

这是最小的代码脚本(请参阅完整脚本的编辑,我这样做是有原因的);

#/bin/bash
nohup {SERVERCOMMAND} > currentOutput.log 2>&1 &

less +F currentOutput.log
Run Code Online (Sandbox Code Playgroud)

它试图做的是在后台运行一个服务器,它输出到一个日志文件。
然后我follow使用less +F. 与您一样,要退出此操作,您必须先按ctrl+c才能按Q

发生的事情是,当我ctrl+cless命令中(停止tailing)时,它会以某种方式杀死nohup从顶部开始的服务器!其他没有任何影响。我可以shift+f再次开始拖尾日志(由于服务器被终止,因此不会获得新信息),如果我点击Q脚本的其余部分,则脚本的其余部分将正常执行。

你知道为什么会这样吗?如何避免它/我应该使用的其他东西?


PS
服务器程序可能正在侦听^C,这可能是问题所在;我能做些什么来阻止它吗?就像,当我{SERVERCOMMAND}自己运行(以阻塞方式)时,我可以点击ctrl+ c,这不会立即杀死它;它打印Received ^C signal, shutting down(然后杀死自己)。这就是当我^C进入时发生的事情less(决赛Received ^C signal, shutting down被写入日志)。


PPS
我一直在尝试很多东西(都没有成功);

linux bash nohup less

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

强制文件链接在 [new] 选项卡中作为预览打开(而不是下载)

有时您想点击 pdf/image/etc 链接并实际在浏览器中查看它,而不是下载它。
在我最近的试运行中,它是我正在使用的Mantis服务器上的屏幕截图。

当我点击链接时,它会立即提示我保存文件,没有在浏览器中打开它的选项。
我真的不想下载它,在图像查看器中打开它,然后记得在我完成后删除该文件。我希望当我关闭普通图像/pdf 的选项卡时,浏览器可以处理它,例如单击open [image] in new tab

我知道浏览器为什么这样做,内容是通过 HTTP 标头提供的Content-Disposition:attachment,但我确信会有一个高级设置、隐藏的上下文菜单选项或很棒的扩展程序,可以让您查看某人想要您的内容实际保存。

有没有人知道这样的事情?


编辑

似乎 Firefox 有一个附加组件,但我找不到 Chrome 的端口。

google-chrome images file-download

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

如何从完整路径中提取没有扩展名的文件名?

我正在尝试修正我的第一个 bash 脚本,并且有一次文件名作为 .bash 传递给脚本$1。我需要提取没有扩展名的文件名。
目前,我假设所有扩展名都是三个字母,因此我删除了最后 4 个字符以获取文件名:

a="${1:0:-4}"
Run Code Online (Sandbox Code Playgroud)

但我需要能够使用超过三个字符的扩展,就像%~n1在 Windows 中一样。
有没有办法从参数中提取没有扩展名的文件名?

linux script bash file-extension filenames

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

如何从less复制文本

如何复制整个缓冲区被 less 显示?
无需选择特定文本,我想要全部。
复制到剪贴板是可取的,但如果我们可以将它输出到一个也可以工作的文件。

我试过使用vim像 :w 这样的通用命令和这里列出的less命令,但似乎不接受这样的命令。

编辑
我必须能够从内部 做到这一点less。这让我们说lesspipe从一个别名埃德,我有过怎么没有控制less实际被调用。我只是看到了结果。
我找到了一种保存缓冲区的方法(请参阅下面的答案),所以现在我只需要看看是否有任何方法可以选择和复制。鉴于限制,可能没有。

linux less terminal-emulator

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

无需重新混合即可更改 .avi 中的默认音轨

我有一些.avi文件有多个音轨,默认音轨是外语。我不是要删除另一首曲目,而只是更改其中的一些曲目,default flag以便在我打开它时播放曲目 2或其他任何曲目

我不想创建任何新文件,我不应该做这样的事情,而且使用.mkvs 这真的很简单

所以我想知道是否也可以[合理地简单] 修改一个.avi

audio video avi

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

在已发送中回复:发送给他们,而不是我

我来自 Thunderbird/Evolution,当我发送电子邮件时,我习惯了他们的行为,然后想要添加我所说的内容,或者我想到了什么,我可以转到我的已发送文件夹,然后点击回复。

这会在新电子邮件中引用我发送的消息,并且只是重新发送一些添加的内容。
但在 Outlook 中,它似乎太字面地理解了“回复”,并将to新电子邮件的设置为from原始电子邮件的设置;我认为它会将这封新电子邮件发送给我,而不是他们。

这是可配置的吗?

microsoft-outlook-2016

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

禁用或大幅缩短密码错误的暂停时间

我现在正在使用等离子 5 (在 Fedora 22 上,如果这很重要),每当我在锁定屏幕上错误地输入密码时,我必须等待大约五秒钟,然后它才能让我再次尝试在密码输入中输入文本。

我觉得这太长了,想知道是否有人知道这个超时是否在某个配置文件中定义(希望只影响锁定/登录屏幕而不是其他软件,其中超时是一个很好的机器人暴力威慑)

kde lock-screen kde-plasma-workspace kde-plasma-5

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

如何向 USB 设备发送消息

我需要能够向 USB 设备发送一组短字节,但不知道如何发送。
我知道供应商和产品 ID 以及消息字符串(但我需要帮助确定它是 ASCII 字符串还是十六进制字符串)。

有一个叫做usb_modeswitch 的软件似乎可以做到这一点,但它仅限于 Linux。
我在某个地方看到过一个帖子,人们用 mingw 编译了它,但没有提供他们的二进制文件,我自己尝试一下不太舒服。

有人提到使用WinUSB,鉴于其本机包含,这将是理想的选择,但我不知道接口。我确实拥有/可以获得 Visual Studio,但我需要帮助从我在网上看到的内容
中找出要使用的内容。

一个不错的替代方案似乎是带有libusb -win32的PyUSB(usb_modeswitch 使用的端口)。 可以像这样使用写入而不是读取,但我仍然需要知道是否只发送字符串或尝试在调用之前从十六进制表示转换为字节。
write()

这是信息:

DefaultVendor=046d
DefaultProduct=c261
MessageEndpoint=01
ResponseEndpoint=01
TargetClass=0x03
MessageContent="0f00010142"
Run Code Online (Sandbox Code Playgroud)

上下文
如果有帮助的话。

我有一台 Logitech G920,它一直出现故障,它拒绝被识别为我的机器上的设备。

设备和打印机屏幕截图

无需卸载驱动程序、尝试其他 USB 插槽、未通电插入、删除 LGS 即可。但奇怪的是,它仍然可以在我的笔记本电脑和 Xbox 上运行。

当我遇到这个线程时,我正处于放弃并重新格式化我的机器的边缘: 发布截图

果然:

设备管理器截图

这就是我找到这篇文章的地方。一些聪明的人已经在 Linux 上自行解决了这个问题,他们使用软件来要求 USB 调制解调器在驱动程序安装闪存驱动器和互联网提供调制解调器模式之间切换。
上面的信息来自那里,我不知道 的意义'%b/%k',我希望这是一个不必要的 usb_modeswitch 特定的东西。

现在我只需要让它在 Windows 中工作。
谢谢你的帮助。

usb drivers windows-10

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

从脚本中打开新的 konsole,执行命令并在结束时变得可交互

我希望能够获得一个脚本(在启动时运行)来打开konsole终端。
当它打开时,它会做一些持久的事情(比如更改目录和源 bashrc)并运行一个长时间运行的程序。
如果程序崩溃或我进来了<ctrl+c>,它会开始接受来自标准输入的命令(例如“向上输入”以再次尝试,就好像它一直是交互式的一样)。

我已经尝试了很多方法来让它工作(我目前只是试图让它ls并在完成时恢复到交互式);

konsole -e ls
konsole --hold ls
konsole -e /bin/bash -c ls
konsole --hold -e "/bin/bash -c ls"
konsole -e "/bin/bash -i -c ls"
konsole -e /bin/bash -i -c ls
konsole -e "echo ls > /tmp/konsolebash;/bin/bash -i --rcfile /tmp/konsolebash"

echo ls > /tmp/konsolebash
konsole -e "/bin/bash -i --rcfile /tmp/konsolebash"
Run Code Online (Sandbox Code Playgroud)

跟引号有关吗?我不应该使用它们,我应该逃避什么吗?
我什至打算尝试执行bash吗?
我的想法用完了,但我希望它甚至可以实现(但希望不是我错过的令人尴尬的简单)。

如果konsole特别是问题,我会赞成成功使用其他终端模拟器的答案(但由于问题具体是关于konsole我认为我不能给你多汁的勾号)

bash automation konsole interactive

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