簡體   English   中英

如何從批處理腳本運行進程

[英]how to run process from batch script

我在linux debian - Debian GNU/Linux 6.0 中有一個簡單的批處理腳本 - 停止進程然后刪除日志文件並再次啟動進程:

#!/bin/bash
killall -KILL rsyslogd
sleep 5s
rm /var/log/syslog
rm /var/log/messages
rm /var/log/kern.log
sleep 3s
rsyslogd
exit

進程名稱是rsyslogd 我必須在刪除日志文件之前關閉它,以便 linux 清空磁盤空間。

我看到killall -KILL按其名稱關閉進程,但相反的是什么 - 運行命令? 在沒有任何命令的情況下按其名稱調用它似乎不起作用。 我會很高興為您提供任何提示,謝謝。

Debian 使用systemd來管理進程。 因此,您應該使用 systemd 的命令來停止和啟動rsyslogd

systemctl stop rsyslog

systemctl start rsyslog

如果您使用的是非常舊的 Debian 版本(太舊了,您應該升級),那么 sys V 可能仍在使用。 在這種情況下,/ rc.rsyslog / /etc/init.d下有一個名為rc.rsyslog或類似的文件(使用ls /etc/init.d查找確切名稱)。 在那種情況下,它將是

sudo /etc/init.d/rc.rsyslog stop

sudo /etc/init.d/rc.rsyslog start

或者,您的systemd可能已損壞。 在這種情況下,可以重新安裝軟件包:

apt-get --reinstall install systemd

啟動 rsyslogd:

 systemctl start rsyslog

要停止它:

 systemctl stop rsyslog

如果您想同時執行這兩項操作,請使用

 systemctl restart rsyslog

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM