Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如果我在cron中使用sleep命令,它会影响其他进程吗?_Linux_Cron_Sh - Fatal编程技术网

Linux 如果我在cron中使用sleep命令,它会影响其他进程吗?

Linux 如果我在cron中使用sleep命令,它会影响其他进程吗?,linux,cron,sh,Linux,Cron,Sh,我需要每分钟设置我的cron任务 所以我写了下面的crontab */1 * * * * /path/to/script/myscript.sh 这一次,我的业务伙伴说,他希望这个过程将以每分钟50秒的速度运行 Cron不允许以秒为单位指定时间。 所以我要用睡眠命令 #! /bin/sh echo "start `date '+%Y-%m-%d %H:%M:%S'`" >> /path/to/project/log/runtime.log sleep 50

我需要每分钟设置我的cron任务

所以我写了下面的crontab

*/1 * * * * /path/to/script/myscript.sh
这一次,我的业务伙伴说,他希望这个过程将以每分钟50秒的速度运行

Cron不允许以秒为单位指定时间。 所以我要用睡眠命令

#! /bin/sh

echo "start `date '+%Y-%m-%d %H:%M:%S'`" >> /path/to/project/log/runtime.log

sleep 50

curl -s https://www.example.com/data.txt > /path/to/project/data/data.txt;

echo "end `date '+%Y-%m-%d %H:%M:%S'`" >> /path/to/project/log/runtime.log
我最害怕的是, 此睡眠进程是否会影响其他服务器进程

还有许多其他cron作业正在运行, 我的cron进程将是最后一个被执行的进程

*/1 * * * * /path/to/script/another-script-a.sh

*/30 * * * /usr/bin/php /path/to/html/another-script-b.php 1> /dev/null

0 8 10 12 * /path/to/script/another-script-c.

*/1 * * * * /path/to/script/myscript.sh
如果我使用sleep命令将进程延迟50秒,
它不会也将其他进程延迟50秒吗?

我测试了两个简单的cronjob,它们同时运行

所以我认为sleep命令不会影响其他进程

cd ~
mkdir test
sudo chmod -R 777 test
cd test
touch test1.sh
touch test2.sh
vi test.txt

Cron分叉一个新进程,因此作业在它自己的空间中运行。两个不同的cron作业之间没有关系。
cd ~
mkdir test
sudo chmod -R 777 test
cd test
touch test1.sh
touch test2.sh
vi test.txt
*/1 * * * * /home/ec2-user/environment/test/test1.sh

*/1 * * * * /home/ec2-user/environment/test/test2.sh
vi test1.sh
echo "start1 `date '+%Y-%m-%d %H:%M:%S'`" >> /home/ec2-user/environment/test/test.log

sleep 50

echo "end1   `date '+%Y-%m-%d %H:%M:%S'`" >> /home/ec2-user/environment/test/test.log
vi test2.sh
echo "start2 `date '+%Y-%m-%d %H:%M:%S'`" >> /home/ec2-user/environment/test/test.log

sleep 50

echo "end2   `date '+%Y-%m-%d %H:%M:%S'`" >> /home/ec2-user/environment/test/test.log
tail -f test.log
end2   2020-12-25 14:29:51
end1   2020-12-25 14:29:51
start2 2020-12-25 14:30:02
start1 2020-12-25 14:30:02
end2   2020-12-25 14:30:52
end1   2020-12-25 14:30:52
start1 2020-12-25 14:31:01
start2 2020-12-25 14:31:01
end2   2020-12-25 14:31:51
end1   2020-12-25 14:31:51