Articles of Linux操作系统

Ubuntu脚本来编译多个Java文件?

我知道这个命令是javac file_name.java但是我怎样才能把一个可以编译几个java文件的shell脚本放在一起呢? 我也在考虑复制文件,我认为我只是使用cp和绝对文件path引用。

需要Linux的端口映射解决scheme

AnalogX制作了一个方便有用的Windows实用程序Portmapper。 它侦听你喜欢的任何端口,并将stream量转发到另一个IP地址。 所以你可以在你的路由器上打开一系列端口,全部映射到一台机器上。 然后,该机器将每个特定端口转发到您在局域网内喜欢的任何地址。 对于有限数量的NAT条目可用的路由器来说,这是一个很好的解决scheme。 只需将一个范围指向一台PC,然后让其余部分完成。 它可以将端口80的stream量转发到192.168.1.101,端口5900到192.168.1.102,端口5901到192.168.1.103:5900等。 我正在寻找一个基于Linux的替代品。 无论是我创build一个configuration文件的程序,详细说明端口号和IP转发,还是一个使用内置解决scheme(如iptables)的策略。 任何build议如何做到这一点?

套接字的function

我正在写Linux守护进程,我想实现通过telnetconfiguration其参数的能力。 我有一个cli接口代码,使用历史和完成者使用gnu readline库编写,我想使用该接口代码守护进程。 我试图将stdin / stdoutredirect到套接字,将rl_instream / rl_outstreamredirect到套接字,读/写到master / slave pty,但没有成功。 类似的问题在这里没有任何答案。 也读过这个问题 ,但我没有孩子的过程。 我的问题是: 我如何在单个进程中使用ptyfunction? 如果我只有一个进程,是否需要使用master和slave pty? 代码示例(没有对pty设备进行操作),预期结果 – readline正常工作 char* readline_buff; int main(void){ int mSock = socket(PF_INET, SOCK_STREAM, IPPROTO_IP); int socketfd, n, flag = 1; int addrlen; daemon(1,1); setsockopt(mSock, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(int)); struct sockaddr_in addr; bzero(&addr, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = […]

为什么我的networking服务器有时只传输部分响应?

我有一个定制的Web服务器代码。 它是使用evnet模块编写的。 当从远程客户端请求时,似乎减less了消息的长度。 但是当我在同一台机器上使用它时,似乎传达了完整的信息。 我无法弄清楚问题的症结所在,也不知道如何诊断。 我使用networking浏览器, curl和nc来testing它。 从远程客户端请求时,它从不传送全长消息。 这是我的web服务器的简化版本,仍然存在这个问题。 我正在用Python 2.7.1在Ubuntu 11.04上做这个

Apache文件所有权/组

我目前为我的组织pipe理了8个不同的站点,并build立了一个中央pipe理网站来帮助pipe理这些站点上的所有内容。 我目前在pipe理网站上有一个file upload器,允许我上传ZIP文件到服务器。 然后,该脚本解压缩包,并将文件移动到服务器的不同部分。 问题是,当我通过浏览器上传文件时,它将所有权分配给apache(用户和组)。 当我尝试使用FTP覆盖文件时,这会导致我遇到问题。 我试图改变上传文件的所有者一旦上传/移动,都与PHP本地“chown”函数,也使用exec函数运行linux命令chown,但都失败(PHP的本地chown显示一个“不允许的操作”错误) 所以我的问题:1)我是否以错误的方式去做? (我对文件所有权的知识是有限的)2)是否有理由不改变文件所有权? 3)有什么解决办法吗? 如果您想了解更多信息,请随时询问。 非常感谢 菲尔 通过浏览器上传文件的当前文件详细信息 [file].php permissions: adfr (0644) Owner: Apache Group: Apache 通过FTP上传的文件的文件详细信息: [file].php permissions: adfr (0644) Owner: [ftp login name] Group: psacln

我怎样才能得到与谷歌breakpad coredump的所有内存

我可以通过使用MiniDumpWithFullMemory获取Windows平台上所有的小型转储内存。但是我怎么能在linux平台上做到这一点?

以另一个用户身份运行makefile命令

我有两个脚本,由root拥有。 #!/bin/sh #script1.sh echo "all: first" > my_makefile echo >> my_makefile echo "first: " >> my_makefile echo "\ttouch file.txt" >> my_makefile #!/bin/sh #script2.sh while true do make -f my_makefile sleep 10 done script2.sh被称为“sudo sh script.sh”并不断在my_makefile上运行make。 script1.sh被个别用户调用来改变makefile。 我如何运行makefile命令,以便file.txt由用户拥有,而不是根?

dynamicreplace正在播放的gstreamerpipe道中的元素

我正在寻找正确的技术,如果有的话,dynamicreplace正在运行的gstreamerpipe道中的元素。 我有一个基于gstreamer的c + +应用程序,它创build的pipe道看起来像这样(使用gst-launch语法): souphttpsrc location =“http://localhost/local.ts”! mpegtsdemux name = d! 排队! mpeg2dec! xvimagesink d。 ! 排队! a52dec! pulsesink 在播放过程中(即GST_STATE_PLAYING是pipe道状态,用户正在欣赏video),我需要从pipe道中删除souphttpsrc,并创build一个新的souphttpsrc,甚至是一个新的霓虹灯源,然后立即将其添加回pipe道并在我们执行此操作之前的同一时间位置处继续播放相同的uri源码stream。 用户可能会看到一个小延迟,这很好。 我们几乎不知道如何删除和replace源代码,我们需要更多的理解。 这是我们迄今为止最好的尝试: gst_element_unlink(source, demuxer); gst_element_set_state(source, GST_STATE_NULL); gst_bin_remove(GST_BIN(pipeline), source); source = gst_element_factory_make("souphttpsrc", "src"); g_object_set(G_OBJECT(source), "location", url, NULL); gst_bin_add(GST_BIN(pipeline), source); gst_element_link(source, demuxer); gst_element_sync_state_with_parent(source); 这并不完美,因为源从头开始播放,其余的pipe道正在等待正确的时间戳缓冲区(我假设),因为几秒钟后,播放select备份。 我试图以多种方式寻找来源,但没有任何工作。 我需要知道正确的方法来做到这一点。 如果我们想要dynamic地replace解码器或其他元件,那么知道一种通用技术(如果存在的话)也是很好的。 谢谢

Webrick不会停止或重新启动

在此之前,我正在运行Linux Mint 13,只是切换到了Fedora 17.由于我已经做了切换,我不能再停止Webrick了。 我使用Jetbrains Rubymine,并启动服务器工作正常,但只要我打停止,或重新启动,它以某种方式detatches进程,我不能再使用该端口,直到我重新启动我的电脑。 我的第一个想法是,这对于Rubymine来说是一个问题,但是当我在控制台启动服务器时,它确实是一样的。 我按ctrl – c来停止它(似乎这样做),但一旦我去在该端口上再次启动服务器,它失败,因为使用重复的地址。

ioctl命令从32位用户代码在64位系统中错误

我正在将设备驱动程序从32位RHEL 2.6.32升级到64位RHEL 2.6.33.9。 我有一个使用ioctl与该驱动程序交谈的程序。 当驱动程序和程序都是64位或32位时,它可以很好地工作。 但是,当驱动程序是64位,而我的程序是32位时,驱动程序接收到的ioctl命令(在compat_ioctl中)与_IOR和_IOWmacros定义的值不匹配。 在我的驱动程序switch语句中,默认情况下打印出所有有效命令的值,即1-12。 32位ioctl命令远不及那些值。 有人能告诉我什么会导致来自一个32位用户程序的命令在64位驱动程序接收时被搞砸了吗? 这里有一些代码:我必须input它; 该代码是在没有互联网访问的安全系统上,所以请原谅任何错误。 它实际上是确认和运行! // IOCTL commands from the include file – most omitted // … #define PORTIO_GET_IRQ_CNT_CMD 10 #define PORTIO_CLR_IRQ_CNT_CMD 11 #define PORTIO_GET_IRQ_TIME_CMD 12 #define PORTIO_IOCTL 'k' // magic number for ioctl // IOCTL Macros #define PORTIO_GET_IRQ_CNT_IOCTL _IOR(PORTIO_IOCTL, PORTIO_GET_IRQ_CNT_CMD, unsigned long) #define PORTIO_CLR_IRQ_CNT_IOCTL _IOR(PORTIO_IOCTL, PORTIO_CLR_IRQ_CNT_CMD, unsigned […]