[英]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.