Articles of unix

语法错误:文件结束意外(期待“那么”)

我正在做一个Minecraft服务器插件更新的代码我是一个新的shell脚本,所以我不知道很多… 当我运行这个代码时,我得到一个错误: #!/bin/sh export PATH=$PATH:. #Options PLUGINDOWNLOADLINK=http://api.bukget.org/3/plugins/bukkit/$PLUGINNAME/latest/download # Plugin folder if [ -f $PWD\plugins ]; then PLUG=$PWD\plugins else PLUG=$PWD\plug-ins fi cd $PLUG if [ ! -f .\update ]; then mkdir update echo Making Directory "update".. fi # Plugins Found for i in $( ls ); do PLUGINNAME=$i done cd .\update wget $PLUGINDOWNLOADLINK # No Plugins […]

如何杀死在c + +的过程,只知道它的名字的一部分

前段时间我需要编写c ++代码来杀死一些进程。 在我的主程序中,我使用系统(“…”)在input上运行带有不同文件名string的大型CAE系统软件包。 CAE软件创build了许多进程,包含进程名string文件名 )。 一些CAE进程worktime > max_time ,比我需要closures他们: //filename contains part of CAE-process name string s="/bin/kill -9 `ps aux | grep "+filename+" | awk {'print $2'}`"; system(s.c_str()); 输出是: Usage: kill pid … Send SIGTERM to every process listed. kill signal pid … Send a signal to every process listed. kill -s signal pid … […]

SIGKILL信号处理

如果一个linux进程正在等待I / O(即处于SLEEP状态)并发出一个SIGKILL信号,那么在终止( STOPPED状态)时,它将通过RUNNING还是READY状态? 换句话说,对于一个处理系统中断的进程,如SIGKILL生成的进程,是否需要通过RUNNING或READY状态? 在正常情况下,一个进程可以处理来自内核的中断,并且知道SIGKILL有一个相当矛盾的目的,就是杀死一个没有响应的信号,但是我怀疑有多less进程被控制,如果有的话。

Unix fork()系统调用什么时候运行?

void child(int pid){ printf("Child PID:%d\n",pid); exit(0); } void parent(int pid){ printf("Parent PID:%d\n",pid); exit(0); } void init(){ printf("Init\n");//runs before the fork } int main(){ init();//only runs for parent ie runs once printf("pre fork()");// but this runs for both ie runs twice //why??? int pid = fork(); if(pid == 0){ child(pid); //run child process }else{ parent(pid);//run parent […]

将应用embedded到窗口中

FvwmButtons(fvwm窗口pipe理器的一个模块)具有Swallow函数,将应用程序的窗口embedded到面板中。 我必须用Motif和Xlib来做这样的事情。 我想embedded一个Xclock到我的应用程序。 我想我必须改变embedded式应用程序的窗口ID。 我怎样才能做到这一点?

符号链接背后是什么?

UNIX / Linux系统如何在内部pipe理符号链接。 已知即使没有实际的目标文件(悬挂链接),也可能存在符号链接。 那么在内部代表一个符号链接是什么呢? 在Windows中,答案是reparse point 。 问题: 在UNIX / Linux中,答案是一个inode吗? 如果是,那么inode号码是否与目标和链接相同? 如果是的话,链接索引节点可以具有不同于目标索引节点(如果存在)的权限?

awk / sed:在特定块号的最后一行之前插入文件内容

给定是两个文件,第一个是Apacheconfiguration文件: $ cat vhosts-ssl.conf <VirtualHost *:443> vhost 1 foobar 1 foobar 2 barfoo 1 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 2 foobar 2 barfoo 1 foobar 1 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 3 foobar 1 barfoo 1 foobar 2 barfoo 2 </VirtualHost> <VirtualHost *:443> vhost 4 foobar 1 foobar 2 barfoo 1 barfoo 2 […]

在Unix中删除ANSI颜色转义的最佳方法

我有一个perl progaram其打印输出的颜色。 如果我rediect文件中的输出,并在vi中打开我看到颜色特殊字符。 像这样的东西。 ^[[31;43mAnd this is red on_yellow too^[[0m 从输出文件中删除此颜色字符的最佳方法是什么? 谢谢 更新: 我尝试了正则expression式。 这个对我有用: cat -va|head ^[[30;41mThis is black on_red^[[0m ^[[30;41mAnd this is black on_red too^[[0m ^[[30;42mThis is black on_green^[[0m ^[[30;42mAnd this is black on_green too^[[0m ^[[30;43mThis is black on_yellow^[[0m ^[[30;43mAnd this is black on_yellow too^[[0m ^[[30;44mThis is black on_blue^[[0m ^[[30;44mAnd this is black […]

如何基于两个文件之间的公共字段使用AWK删除一个文件中的重复行?

我有两个文件 文件1包含3个字段 文件2包含4个字段 文件1的行数比文件2的行数小得多 我想通过以下操作来比较基于第一个字段的两个文件 如果文件1的任何一行中的第一个字段出现在文件2的一行的第一个字段中,则不要打印该文件2的该行。 任何意见将不胜感激。 Input File 1 S13109 3739 31082 S45002 3800 31873 S43722 3313 26638 Input File 2 S13109 3738 31081 0 S13109 3737 31080 0 S00033 3008 29985 0 S00033 3007 29984 0 S00022 4130 31838 0 S00022 4129 31837 0 S00188 3317 27372 0 S45002 3759 31832 0 S45002 […]

从Java触发shell脚本的最佳方法

我有一个我想从J2EE Web应用程序触发的shell脚本。 该脚本做了很多事情 – 处理,FTP等 – 这是一个遗留问题。 运行需要很长时间。 我想知道什么是最好的方法。 我希望用户能够点击链接,触发脚本,并向用户显示一条消息,说明脚本已经启动。 我希望HTTP请求/响应周期是瞬时的,不pipe我的脚本需要很长时间才能运行。 我可以想到三个select: 在处理用户点击的过程中产生一个新的线程。 但是,我不认为这符合J2EE规范。 向HTTP响应stream发送一些输出并在触发脚本之前提交它。 这给出了HTTP请求/响应循环已经完成的错觉,但实际上处理请求的线程仍然在那里等待shell脚本完成。 所以我已经基本上劫持了容器HTTP处理线程为我自己的目的。 创build一个包装脚本,在后台启动我的主脚本。 这将使请求/响应周期在容器中正常完成。 以上所有将使用servlet和Runtime.getRuntime()。exec()。 这在Java 1.4.2上使用Oracle的OC4J应用服务器在Solaris上运行。 请问有没有人有任何意见哪个是最简单的解决scheme,为什么? 还是有没有人有更好的方法? 我们已经有了Quartz,但是我们不希望将shell脚本重新实现为Java进程。 谢谢。