Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

4
如何从bash脚本中分离进程?
我正在尝试从bash脚本中分离一个进程,以便在退出该脚本时SIGINT不会转发到该进程。 我disown直接在终端中使用了该命令,但是在bash中,disown并没有阻止SIGINT的转发。该脚本的目的是通过一次调用先启动openocd,然后启动gdb。由于脚本永不退出(正在运行gdb),因此SIGINT仍从gdb转发到openocd,这是一个问题,因为SIGINT用作gdb中的暂停命令。 在终端中,它看起来像这样: $ openocd & # run openocd demonized $ disown $! # disown last pid $ gdb # invoke GDB 当按此顺序在终端上调用时,SIGINT不会从gdb传递到openocd。但是,如果在bash脚本中进行了相同的调用,则会传递SIGINT。 任何帮助将不胜感激。 ps这个问题是在OS X中出现的,但是我正在尝试使用对所有Unix工具都可移植的工具。
18 bash  disown 


1
为什么在守护进程时使用setsid()?
为了创建服务(守护程序),我们通过调用派生父级并使其退出,同时使子级成为会话领导者setsid()。此外,为什么要使用setsid()?我们的孤立进程由init(尽管并非在所有情况下)进程来处理。 为什么我们使用stsid()?setsid()与处理SIGHUP信号之间是否有任何关系。
18 daemon 

1
“ grep”的反义词是什么?
假设我要打印一长串字符串,而不是只显示包含特定模式的行(使用“ grep”来执行此操作),而是如何过滤出某些模式?
18 grep 


2
journalctl的可选单位列表
在CentOS 7服务器中,我想获取可以为其journalctl生成日志的可选单元的列表。如何更改以下代码来完成此操作? journalctl --output=json-pretty | grep -f UNIT | sort -u 在CentOS 7终端中,以上代码产生grep: UNIT: No such file or directory。 编辑: 以下Java程序将终止,而不会输出所需grep的任何输出。我如何更改内容以使Java程序除终端版本外还能工作? String s; Process p; String[] cmd = {"journalctl --output=json-pretty ","grep UNIT ","sort -u"}; try { p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((s = br.readLine()) != …
18 grep  systemd 


1
聆听日记更改
通常tail -f /var/log/messages,如果有新行,我会使用更新。 如何具有类似的功能journalctl?
18 logs  systemd 

4
为什么grep在这里使用管道不起作用?
我有以下命令: find / -name libGL.so.1 它返回很多行与“权限被拒绝”。我想排除这些行,因此添加了以下内容: find / -name libGL.so.1 | grep -v 'denied' 但是输出是相同的-我grep -v 'denied'没有用过滤掉行Permission denied。我尝试了许多变体,查看了grep教程,但无法弄清楚问题所在。有什么建议么?
18 shell  grep  pipe 

5
为什么Iptables永久服务不能保存我的更改?
我按照本教程在ubuntu 12.04上设置IP规则。一切在安装时都可以正常工作-但现在我对防火墙进行了更改,这些更改在重新启动后不会持续存在。我不明白为什么会这样。这是我如何使用iptables-persistent的演示。我究竟做错了什么? $ sudo service iptables-persistent start * Loading iptables rules... * IPv4... * IPv6... $ sudo iptables -L //shows a certain rule $ iptables -D INPUT ... //command successfully drops the rule $ sudo iptables -L //shows rule has been deleted $ sudo service iptables-persistent restart * Loading iptables …


5
键绑定表?
我们是否有一个键绑定表可以转换所有不同的按键方式?我正在使用zsh,但我假设如果有这样一个表,它将适用于任何shell。 我问的原因是我想分配一些键绑定,但是我不知道如何引用它们(除非我要窃取已经定义的键绑定)。 例如,在“ zbindkey”中,我们有这样的事情: [[ "$terminfo[kend]" == " O"* ]] && \ bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line ...而且我猜想“ kend”表示这是指End密钥。 交叉检查,bindkey我看到以下几行: "^E" end-of-line "^[OF" end-of-line "^[[F" end-of-line ...因此,我相信这些行之一是指End关键。哪一个? 我们在“ bindkey”文件中也有此文件: bindkey "\e[A" history-beginning-search-backward 现在,我碰巧知道这就是Up Arrow关键,但是如果我不知道如何找到我呢? $ bindkey (at CLI) ...为相同的键提供了不同的语言: "^[[A" history-beginning-search-backward ...但是至少现在我知道, ^[[A在CLI的bindkey-at \e[A-zLID中讲和在bindbin-in-zbindkey的讲中一样。这很容易。在DOS的Up Arrow 过去0;72,您可以找到每个合法按键的扫描代码,而且只有一种语言。 有桌子吗?或其他能够选择击键并知道如何在terminfo[]...中的“ bindkey-in-zbindkey”中...,在“ bindkey-at-CLI”中和/或任何其他语言中引用它的方式碰巧是? 再次,在DOS中有一个scancode程序-键入一个按键,就得到了扫描代码。简直太容易了。 …

3
“可中断睡眠”状态表示什么?
我让Firefox在Parted Magic LiveCD上运行,然后(可能)由于我不记得的按键组合,它很快从屏幕和任务栏/窗口列表中消失了。 然而: ps ax | grep firefox返回以下内容(和不需要的grep firefox行)。两者ps和GUI Task Manager都显示了看起来似乎没有变化的RSS,VM-SIZE和0%CPU使用率的Firefox。 约翰多1916 36.6 14.0 923772 504372 tty1 Sl 13:30 12:15 firefox pstree | grep firefox 返回: init─┬─2* [ROX-Filer───firefox───25* [{firefox}]] strace -p 1916 返回,并且看起来永远停留在此行上: futex(0xac975608), FUTEX_WAIT_PRIVATE, 1, NULL 我从对ps中的STAT列值是什么意思的答案中了解到?即S(在Sl)指示进程处于interruptible sleep状态。 谁能详细说明状态是什么? 编辑 我将开始一个新问题,在我的发行版中有更多详细信息,以解决原始的第二个问题。

5
如何将彩色pdf转换为黑白?
我想将一个带有一些彩色文本和图像的pdf转换为另一个只有黑白的pdf,以减小其尺寸。此外,我想将文本保留为文本,而不变换图片中的页面元素。我尝试了以下命令: convert -density 150 -threshold 50% input.pdf output.pdf 在另一个问题中找到了一个link,但它确实做了我不想要的:输出中的文本被转换为较差的图像,并且不再可以选择。我尝试了Ghostscript: gs -sOutputFile=output.pdf \ -q -dNOPAUSE -dBATCH -dSAFER \ -sDEVICE=pdfwrite \ -dCompatibilityLevel=1.3 \ -dPDFSETTINGS=/screen \ -dEmbedAllFonts=true \ -dSubsetFonts=true \ -sColorConversionStrategy=/Mono \ -sColorConversionStrategyForImages=/Mono \ -sProcessColorModel=/DeviceGray \ $1 但是它给了我以下错误信息: ./script.sh: 19: ./script.sh: output.pdf: not found 还有其他创建文件的方法吗?

3
如何对某些行运行awk?
我想用提取一些行awk。是否可以执行以下任务: ls -l | awk 'BEGIN FOR(i=122;i<=129;i++) FNR==i' 如何显示行号122到129的详细信息?
18 linux  awk 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.