Убедитесь, что это устройство не используется другим экраном
.
Этого можно добиться с помощью https://superuser.com/questions/97844/how-can -i-determine-what-process-open-in-in-linux-file-in-inux :
sudo lsof /dev/ttyS0
И затем убить этот процесс, если это так.
По какой-то причине при этом условии sudo screen
все еще может получить доступ к устройству, но тогда в этом соединении будут пропущены символы, которые используются другим экраном
.
Убедитесь, что у пользователя есть разрешение на чтение и запись в файл.
Например. в Ubuntu вы хотите добавить пользователя в группу dialout
: https://askubuntu.com/a/133244/52975
используйте функцию printf в awk, а затем подключитесь к ksh.
ls -lrth /apps/wldomains | awk '$1 ~/^d/ { printf "sesu %s\n", $3 }'
должен сгенерировать
sesu userid1
sesu userid2
sesu userid3
sesu userid4
просто добавьте | ksh
когда OK
ls -lrth /apps/wldomains | awk '$1 ~/^d/ { printf "sesu %s\n", $3 }'| ksh
grep | awk
в awk
find /apps/wldomains -type d -exec stat -c %U {} \; | sort -u | xargs -n 1 sesu -
find /apps/wldomains -type d
найдет все каталоги в /apps/wldomains
(включая сам /apps/wldomains
).
stat -c %U
выведет имя пользователя владельца найденного каталога.
sort -u
возьмет эти имена пользователей и отсортирует их в список различных имен пользователей.
xargs -n 1 sesu -
возьмет этот список и выполнит sesu -
для каждого из них.
В Solaris установите пакет GNU coreutils и используйте gstat
вместо stat
.