Articles of unix

如何findunix上没有日志文件的死进程的原因?

这是一个面试问题。 开发者开始了一个过程。 但是当一个客户想要使用这个过程时,他发现这个过程并没有运行。 开发人员login,发现过程中死亡。 开发者怎么知道什么是错的? 跟进:应该将日志写入文件的正在运行的进程。 但是文件中没有日志。 开发者怎样才能弄清楚在这个过程中发生了什么? 我想:如果程序可以重新运行,我将使用gdb来跟踪进程。 如果不是,请检查进程(应用程序)中的输出文件。 或者,添加打印到代码。 但是,还有其他的方法可以通过引用操作系统生成的一些信息来实现吗?

使用分散处理来处理短读/写操作的技巧?

Scatter-gather – readv()/ writev()/ preadv()/ pwritev() – 在单个系统调用中读取/写入可变数目的iovec结构体。 基本上它从0到iN依次读/写每个缓冲区。 然而,根据文档,readv / writev调用的返回次数也比请求的less。 我想知道是否有一个标准/最佳做法/优雅的方式来处理这种情况。 如果我们只是处理一堆字符缓冲区或类似的东西,这不是什么大问题。 但其中的一个优点是使用分散收集结构和/或离散variables作为个人iovec项目。 如何处理readv / writev只读取/写入结构的一部分或长度的一半或类似的情况。 下面是我正在做的一些人为的代码: int fd; struct iovec iov[3]; long aLong = 74775767; int aInt = 949; char aBuff[100]; //filled from where ever ssize_t bytesWritten = 0; ssize_t bytesToWrite = 0; iov[0].iov_base = &aLong; iov[0].iov_len = sizeof(aLong); bytesToWrite += iov[0].iov_len; […]

从multithreading应用程序生成进程

我有一种情况,我需要从一个非常大的multithreading应用程序中产生一个辅助进程,但是我没有完全的控制权。 现在我正在使用fork() / exec() 。 这在很多情况下都是有效的,但是在某些情况下,在exec()发生之前,孩子会奇怪地崩溃。 我怀疑这是因为fork()multithreading应用程序通常被认为是一个真正的坏主意。 我真的很喜欢以primefaces方式启动一个进程的方式,没有fork()父进程:所有文件描述符closures,环境设置我想要的方式,CWD设置等。这应该避免所有的fork()我的multithreading父应用程序,并处理文件描述符inheritance,等posix_spawn()应该是理想的。 不幸的是,在Linux上, posix_spawn()使用fork()和exec() 。 vfork()被定义为挂起父进程,直到subprocess调用exec() 。 这似乎更像我想要的,但我的理解是, vfork()通常被认为是一个历史遗迹这些天,相当于fork() —这仍然是这种情况? 处理这个问题最糟糕的方式是什么? 注意: 我不能在任何线程启动之前产生我的进程(因为我不能在那个时候运行代码) 由于外部的要求,我不能重新devise我的应用程序不需要帮助程序 在产卵辅助过程之前,我不能暂停所有的线程,因为它们不属于我 这是在Linux上。 涉及Java,但我所有的代码都在C

如何将string转换为gnuplot中的数字

有没有办法将表示数字的string(科学格式)转换为gnuplot中的数字。 即 stringnumber="1.0e0" number=myconvert(stringnumber) plot [-1:1] number 我可能使用shell命令searchmyconvert。

awk一个class轮只select基于列值的行

我想读取filein.txt (制表符分隔),并输出一个fileout.txt只有与给定列的值相匹配的行,并消除被查询的列。 即 filein.txt #name\thouse\taddress roger\tvictorian\t223 dolan st. maggie\tfrench\t12 alameda ave. kingston\tvictorian\t224 house st. robert\tamerican\t22 dolan st. 让我们说,我想只select房屋是victorian风格的行,然后我的fileout.txt应该是这样的: fileout.txt #name\taddress roger\t223 dolan st. kingston\t224 house st.

无法在Unix中删除目录

在Unix中我有一个看似不可删除的目录,其中包含一些名称以.panfs开头的隐藏文件。 我无法使用以下任一命令将其删除: rm -R <dir> rm -Rf <dir> 有什么想法吗?

GCC选项的共享和-WI共享区别

我知道-Wl,-shared是ld的一个选项。 我见过有人这样编译, $ gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o 还有一些人喜欢这个 $ gcc -Wl,-shared -Wl,-soname,libtest.so -o libtest.so *.o 所以我想知道-shared和-Wl,-shared是否有区别。 谢谢。

查看由数字表示的文件的特定行

好吧,这可能是一个明显的事情,但它逃脱了我,因为它可能可以做一个更简单的方式,我不知道,迄今..说有一个“文件”,我只想看看什么是在该文件的行号“X”上,解决scheme是什么? 这是我能想到的: head -X < file | tail -1 sed -n Xp < file 有没有什么(或任何其他方式)从标准的Unix / GNU / Linux文本工具/ utils集?

Mac OSX中的“aptitude”是什么?

如何在OSX上执行“sudo apt-get install”?

我该如何解开unix中的tar.bz文件?

我发现了大量的页面,说明如何解开tar.bz2文件,但是如何解开一个tar.bz文件呢?