linux启动执行
A. 详解如何在 linux 启动时自动执行命令或脚
在启动时执行 Linux 脚本
有两种传统的方法可以实现在启动时执行命令或脚本:
方法 #1 - 使用 cron 任务
除了常用格式(分 / 时 / 日 / 月 / 周)外,cron 调度器还支持@reboot指令。这个指令后面的参数是脚本(启动时要执行的那个脚本)的绝对路径。然而,这种方法需要注意两点:
a) cron 守护进程必须处于运行状态(通常情况下都会运行),同时
b) 脚本或 crontab 文件必须包含需要的环境变量(如果有的话,参考 StackOverflow 获取更多详细内容)。
方法 #2 - 使用 /etc/rc.d/rc.local
这个方法对于 systemd-based 发行版 Linux 同样有效。不过,使用这个方法,需要授予/etc/rc.d/rc.local文件执行权限:
# chmod +x /etc/rc.d/rc.local
然后在这个文件底部添加脚本。
下图说明如何分别使用 cron 任务和 rc.local 运行两个示例脚本(/etc/rc.d/rc.local/home/gacanepa/1.sh和/home/gacanepa/2.sh)。
1.sh:
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txt
2.sh:
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
*启动时执行 Linux 脚本 *
记住,一定要提前给两个示例脚本授予执行权限:
$ chmod +x /home/gacanepa/1.sh $ chmod +x /home/gacanepa/2.sh
在登录或注销时执行 Linux 脚本
要在登录或注销时执行脚本,分别需要使用~.bash_profile和~.bash_profile文件。多数情况下,后者需要手动创建。在每个文件的底部,添加调用脚本代码,如前面例中所示,就可以实现这个功能。
B. linux下通过命令启动多个终端执行相应的命令和程
系统大全为您提供
在一些情况下,往往需要同时启动多个终端并让终端执行自动执行相应的命令,进而达到提高操作效率的目的。在linux下gnome-terminal启动终端命令,
gnome-terminal -x 后跟执行的命令,bash是linux启动子shell的命令,bash -c "所要执行的命令串",通过嵌套gnome-terminal -x bash -c ......,表示启动新终端,
并在新启动的终端里执行bash -c,即启动子shell,由子shell执行-c后面的双引号括起来的命令串。同时为保证gnome-terminal新启的终端不退出,要在bash -c的命令串后
加bash让其有一个进程在运行,本例中加的是erl命令,直接进入erl终端,当然不会退出。
c语言版:
#include <unistd.h>
#include <sys
pes.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char * argv[])
{
int count = atoi(argv[1]),i;
for(i=0;i<count;i++)
{
pid_t pid = fork();
if(pid == 0)
{
//printf("child=%d ",getpid());
system("gnome-terminal -x bash -c 'ulimit -n 1000000;cd /home;erl'");
exit(0);
}
}
exit(0);
}
执行 ./a.out 3
该程序采用异步多进程方式,fork子进程,通过system(。。。。)系统调用执行相应的命令,该程序需要注意的是(1)main函数如何带参数,所带的参数是从argv[1]开始的,argv[0]默认的参数为“0”,实际上argv数组的长度是外面参数的个数加1;(2)fork出的子进程,照样会执行for循环,因此为避免此现象发生,fork子进程执行后,exit(0)让子进程退出,启动下一个子进程;(3)fork返回值在子进程里是0,在父进程里是生成的子进程进程号;(4)c语言的atoi()可以把字符串转化为整型。
Bash shell版
#!/bin/bash for((i=0;i<$1;i++)) do ((port=2+i)) gnome-terminal -x bash -c "cd /home;ulimit -n 1000000;erl +K true -run io format $port" & done
该脚本更加轻量灵活,注意&是切换到后台运行,防止阻塞当前进程的for的下一次执行,由此可知shell也是多进程模型,而js脚本是单进程模型。
以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。
本文来自系统大全http:///如需转载请注明!推荐:win7纯净版
C. 如何在重启或启动时执行命令或脚本 | Linux 中国
在Linux系统中,有时需要在重启或启动时执行特定的命令或脚本。以下为三种有效的方法。
方法一:利用/etc/rc.d/rc.local文件在启动时运行脚本或命令。
此方法适用于传统Linux系统,涉及将自定义脚本添加至文件底部,并确保文件具有执行权限。
创建示例脚本后,设置执行权限并添加至文件中。重启系统以验证脚本是否正确执行。
方法二:使用crontab在启动时执行命令或脚本。
在crontab中添加特殊字符串@reboot,允许用户在系统启动时运行特定命令或脚本。设置crontab条目后,重启系统进行验证。
方法三:通过systemd服务单元在启动时运行命令或脚本。
适用于systemd系统,需要创建systemd启动脚本并放置于特定目录下。运行命令更新配置文件并启用服务,重启系统验证脚本执行情况。
额外提示:若需后台运行脚本,请在最后添加"&"符号。以不同用户运行命令时,请使用指定格式。
来源:2daygeek.com/execute-run-script-on-boot
作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出