❶ linux应用程序 怎么每60s发送运行某个函数一次
这要看该应用程序本身的实现了
如果在程序内部的话就可以使用一个计时器比如可以使用sleep函数在一个while循环里(死循环)每隔60s调用特定函数一次
当然也可以使用SIGALRM信号与alarm函数来定期调用某个函数
如果想要在外程序的”外“部进行程序内部函数定期调用执行的话可以在程序内部作信号捕获
比如SIGUSR1等等,当程序捕获到该信号会就调用一次某个函数或者直接进入死循环定期调用函数(为了避免多次创建死循环可设置一个变量用于记录当前是否已经捕获了信号)
如果是前一种,捕获信号后只调用一次则我们可以通过kill命令向该程序发送信号(前提是该程序一直运行在系统后台里)
#!/bin/bash
whiletrue
do
kill-sSIGUSR1pid
done
如此便可以定期让程序调用该程序内部的某一个函数
❷ 在linux中怎么运行脚本函数
1、同一脚本文件中的函数:
#!/bin/sh
function func1()
{
echo $1
}
func1 "Hello world!"
2、其它脚本文件中的函数:
func.sh文件内容如下(其中定义了函数func1,需要1个参数):
#!/bin/sh
function func1()
{
echo $1
}
主程序脚本:
#!/bin/sh
. func.sh
func1 "Hello world!"
❸ 如何在linux调用windows库函数
在linux调用windows库函数:它之所以能够在windows上运行,当然是因为编译器把它们编译成了windows操作系统能够识别的机器码组织形式。
应先用fdisk –l或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
#mount -t ntfs /dev/sdc1 /mnt/usbhd1。
#mount -t vfat /dev/sdc5 /mnt/usbhd2。
注:对ntfs格式的磁盘分区应使用-t ntfs 参数,对fat32格式的磁盘分区应使用-t vfat参数。
find:
find / -name "*.txt" -print 用于查找所有的‘ *.txt’文件在当前目录及子目录中。
find / -name "[A-Z]*" -print 用于当前目录及子目录中查找文件名以一个大写字母开头的文件。
find /etc -name "host*" -print 在/etc目录中查找文件名以host开头的文件。
find / -name "[a-z][a-z][0--9][0--9].txt" -print 在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件。
❹ php执行linux系统命令的常用函数使用说明
system函数
说明:执行外部程序并显示输出资料。
语法:string
system(string
command,
int
[return_var]);
返回值:
字符串
详细介绍:
本函数就像是
C
语中的函数
system(),用来执行指令,并输出结果。若是
return_var
参数存在,则执行
command
之后的状态会填入
return_var
中。同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用
EscapeShellCmd()。若
PHP
以模块式的执行,本函数会在每一行输出后自动更新
Web
服务器的输出缓冲暂存区。若需要完整的返回字符串,且不想经过不必要的其它中间的输出界面,可以使用
PassThru()。
实例代码:
复制代码
代码如下:
<
?php
$last_line
=
system('ls',
$retval);
echo
'Last
line
of
the
output:
'
.
$last_line;
echo
'<hr
/>Return
value:
'
.
$retval;
?>
exec函数
说明:执行外部程序。
语法:string
exec(string
command,
string
[array],
int
[return_var]);
返回值:
字符串
详细介绍:
本函数执行输入
command
的外部程序或外部指令。它的返回字符串只是外部程序执行后返回的最后一行;若需要完整的返回字符串,可以使用
PassThru()
这个函数。
要是参数
array
存在,command
会将
array
加到参数中执行,若不欲
array
被处理,可以在执行
exec()
之前呼叫
unset()。若是
return_var
跟
array
二个参数都存在,则执行
command
之后的状态会填入
return_var
中。
值得注意的是若需要处理使用者输入的资料,而又要防止使用者耍花招破解系统,则可以使用
EscapeShellCmd()。
实例代码:
复制代码
代码如下:
<
?php
echo
exec('whoami');
?>
popen函数
说明:打开文件。
语法:int
popen(string
command,
string
mode);
返回值:
整数
详细介绍:
本函数执行指令开档,而该文件是用管道方式处理的文件。用本函数打开的文件只能是单向的
(只能读或只能写),而且一定要用
pclose()
关闭。在文件操作上可使用
fgets()、fgetss()
与
fputs()。若是开档发生错误,返回
false
值。
实例代码:
复制代码
代码如下:
<
?
$fp
=
popen("/bin/ls","r"
);
?>
PHP监控linux服务器负载
在实际项目的应用中,我们由于各种条件的现实,利用PHP来实现服务器负载监控将是一种更为灵活的方式。
由于Web
Server以及PHP的实现方式所限,我们在现实环境中很难利用PHP去调用一些Linux中需要root权限才能执行的程序,对此,我从网上找到另外一种方式来绕开这个限制。首先先写个c程序中转调用系统命令,然后用PHP去执行此c程序。
c程序
首先写个c文件,比如/usr/local/ismole/w.c
复制代码
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<systypes.h>
#include<unistd.h>
int
main()
{
uid_t
uid
,euid;
//note
获得当前的uid
uid
=
getuid();
//note
获得当前euid
euid
=
geteuid();
//note
交换这两个id
if(setreuid(euid,
uid))
perror("setreuid");
//note
执行将要执行linux系统命令
system("/usr/bin/w");
return0;
}
编译该文件gcc
-o
w
-Wall
w.c,这时会在当前目录下生成程序w。改变此程序的属主chmod
u+s
./w。
PHP执行
文件内容如下,放在web目录下,访问就会输出当前的服务器负载情况。
复制代码
代码如下:
<?php
/*
More
&
Original
PHP
Framwork
Copyright
(c)
2007
-
2008
IsMole
Inc.
$Id:
serverMonitor.php
408
2008-12-02
08:07:40Z
kimi
$
*/
//note
key的验证过程
if($key
!=
$authkey)
{
//
exit('key
error);
}
$last_line
=
exec('/usr/local/ismole/w',
$retval);
$returnArray
=
explode("load
average:
",
$retval[0]);
$returnString
=
$returnArray[1];
echo
$returnString;
按照上面的实例,我们可以用PHP来做任何我们想执行的Linux系统命令,SVN更新,服务器监控,备份,恢复,日常维护等等。
❺ linux线程函数运行结果疑问
你是把i的地址传给线程,而不是把i的值传给线程,当线程被创建好后,并没有马上被调度执行,而你main函数里的循环还在不停的运转,所以i的值在不停的增长,等到被创建的线程得到CPU调度并且打印传入地址(i的地址)内的值的时候,这个地址中的值已经++过若干次了,所以就出现你看到的情况了。
至于你的子进程什么时候被调度,这完全是由操作系统根据调度算法决定的(当前系统内其他进程的运行情况,优先级等也会影响到它),所以你得到的是一个随机的结果。
你可以在你的main函数pthread_create成功后加上打印的,再结合线程中的打印,你就能清晰的看到线程被创建后并没有马上得到运行的机会的。
❻ linux下的C函数怎样才能在window下运行
可以在windows安装cygwin,这就有了gcc编译器。
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件。
它对于学习unix/linux操作环境,或者从linux到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。
❼ 如何在linux中运行数据拟合函数
你可以使用“电子表格”类软件来处理数据啊,就像excel一样,
在linux下有Gnumeric、libreoffice(openoffice)、永中office等等。
输入数据,插入图表,挑选自己需要的图表、曲线类型即可。
❽ Linux中如何执行两个main函数
1.运行:本文使用一个简单的C程序(simple.c)。代码如下: int main() { return(0); } 2. 编译:~#gcc -o simple simple.c 3. 查看可执行文件的基本信息~#objmp -f simple simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0借助objmp这个工具,可以获得可执行文件的一些关键信息。
❾ 在linux下怎么运行main函数
1.运行:
本文使用一个简单的C程序(simple.c)。代码如下:
int main()
{
return(0);
}
2. 编译:
~#gcc -o simple simple.c
3. 查看可执行文件的基本信息
~#objmp -f simple
simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0借助objmp这个工具,可以获得可执行文件的一些关键信息。