- Added pkill command

git-svn-id: svn://kolibrios.org@8662 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
turbocat committed 2021-04-01 22:06:12 +00:00
1 parent 232277e20f
commit e54c8af781
5 files changed
+54

No files matched your search

+1
View File
@@ -27,6 +27,7 @@ void get_file_dir_loc(char *filepath, char *dir_path);
#include "cmd/cmd_ls.c"
#include "cmd/cmd_ps.c"
#include "cmd/cmd_kill.c"
#include "cmd/cmd_pkill.c"
#include "cmd/cmd_echo.c"
#include "cmd/cmd_date.c"
#include "cmd/cmd_exit.c"
+50
View File
@@ -0,0 +1,50 @@
int cmd_pkill(char param[])
{
int i=1, n=0; int process_count=0;
char *buf1k=NULL;
unsigned PID=0;
#ifdef LANG_RUS
#define PKILL_HELP " pkill <имя_процесса>\n\r"
#define PKILL_KILL " PID: %u - убит\n"
#define PKILL_NOT_KILL " PID: %u - не убит\n"
#define PKILL_NOT_FOUND " Процессов с таким именем не найдено!\n"
#else
#define PKILL_HELP " pkill <process_name>\n\r"
#define PKILL_KILL " PID: %u - killed\n"
#define PKILL_NOT_KILL " PID: %u - not killed\n"
#define PKILL_NOT_FOUND " No processes with this name were found!\n"
#endif
if(!strlen(param)){
printf(PKILL_HELP);
return TRUE;
}
buf1k = malloc(1024);
if(buf1k==NULL){
return FALSE;
}
while(i!=n){
n = kol_process_info(i, buf1k);
if(!strnicmp(buf1k+10, param, 10)){
memcpy(&PID, buf1k+30 ,sizeof(unsigned));
if(kol_process_kill_pid(PID)){
printf(PKILL_NOT_KILL, PID);
}else{
printf(PKILL_KILL, PID);
}
process_count++;
}
i++;
}
if(!process_count){
printf(PKILL_NOT_FOUND);
}
free(buf1k);
return TRUE;
}
+1
View File
@@ -51,6 +51,7 @@ int cmd_exit(char arg[]);
int cmd_memory(char arg[]);
int cmd_help(char cmd[]);
int cmd_kill(char process[]);
int cmd_pkill(char process_name[]);
int cmd_ls(char dir[]);
int cmd_mkdir(char dir[]);
int cmd_more(char file[]);
@@ -15,6 +15,7 @@ const command_t COMMANDS[]=
{"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help <command> ;help on command\n\r", &cmd_help},
{"history", " Lists used commands\n\r", &cmd_history},
{"kill", " Stops a running process. Usage:\n\r kill <PID of process>\n\r kill all\n\r", &cmd_kill},
{"pkill", " Kills all processes by name. Usage:\n\r pkill <process_name>\n\r", &cmd_pkill},
{"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls <directory> ;lists the files at specified folder\n\r ls -1 ;lists the files in a single column\n\r", &cmd_ls},
{"mkdir", " Makes directory. Usage:\n\r mkdir <folder name> ;creates the folder in working directory\n\r mkdir <path><folder name> ;create folder by specified path\n\r", &cmd_mkdir},
{"more", " Displays a file data to the screen. Usage:\n\r more <file name>\n\r", &cmd_more},
@@ -15,6 +15,7 @@ const command_t COMMANDS[]=
{"help", " Справка по командам. Использование:\n\r help ;список всех команд\n\r help <команда> ;справка по команде\n\r", &cmd_help},
{"history", " Список использованных команд\n\r", &cmd_history},
{"kill", " Убивает процесс. Использование:\n\r kill <PID процесса>\n\r kill all\n\r", &cmd_kill},
{"pkill", " Убивает все процессы по имени. Использование:\n\r pkill <имя_процесса>\n\r", &cmd_pkill},
{"ls", " Выводит список файлов. Использование:\n\r ls ;список файлов в текущем каталоге\n\r ls <директория> ;список файлов из заданной директории\n\r", &cmd_ls},
{"mkdir", " Создает каталог. Использование:\n\r mkdir <имя папки> ;создать папку в текущем каталоге\n\r mkdir <путь><имя папки> ;создать папку по указанному пути\n\r", &cmd_mkdir},
{"more", " Выводит содержимое файла на экран. Использование:\n\r more <имя файла>\n\r", &cmd_more},